2012-05-15 9 views
6
<!—Firefox Prefetching --> 
<link rel="prefetch" href="http://www.example.com/page2.html"> 

<!—Chrome Prefetching --> 
<link rel="prerender" href="http://www.example.com/page2.html"> 

Si tuviera Javascript en la página para prerender/prefetch (como Google Analytics JS), ¿la prerender/prefetch ejecutará Javascript en la página? ¿O retrasa la ejecución de JS hasta que el usuario realmente solicite la página?Rel PreRender/PreFetch, ¿ejecuta JS?

+0

Acabo de investigar un poco más y respondí la pregunta yo mismo, y es interesante observar que prefetch y prerender se comportan de manera diferente el uno al otro. –

Respuesta

7

acabo de hacer un poco más investigación sobre esto:

Prefetch cargará el recurso de nivel superior, que es a menudo simplemente la página HTML

Prerender buscará elementos hijo también, y se ejecutará código Javascript . Al utilizar la API Visibilidad de página, podemos determinar el estado de visibilidad actual de la página cargada.

Así que la respuesta es sí, ejecutará JS siempre que el usuario esté en Chrome y se esté utilizando prerender. Además, la versión actual de Google Analytics hace un uso completo de la API Visibilidad de página, por lo que las estadísticas no estarán sesgadas, sin embargo, es probable que exista un gran número de código cuyas estadísticas estén siendo sesgadas al no manejar adecuadamente los casos de preentrega.

+0

En realidad, son intencionalmente comandos diferentes. 'prefetch' se puede usar en los recursos que desees precapturar (un script, una imagen, un archivo html, lo que sea), mientras que' prerender' es para preentregar una página completa que (afortunadamente) sabes que es muy probable que sea visitada luego, y muy pronto, por su usuario. Podría ser, por ejemplo, la página de inicio de sesión para su foro, o algo así. 'prefetch' es compatible con chrome, ff, ie y edge. 'prerender' es compatible con chrome, es decir, edge. (aunque consulte caniuse.com para obtener asistencia actualizada ...) – Svish

+0

¿Tiene una fuente oficial de Google que dice que Google Analytics sabe cómo ignorar las visitas de búsqueda previa? – Flimm

1

No, la captación previa simplemente almacena en caché el archivo, no ejecuta el javascript que contiene.

Como sé, analytics.js no analiza el sitio web cuando lo solicita. Funciona cuando se ejecuta javascript. Cuando la búsqueda previa del navegador (solicitud) un archivo analytics.js no significa que se ejecuta el archivo analytics.js. Por lo tanto, los datos de Google Analytics de su sitio web no se verán afectados por el método de recuperación previa hasta que el usuario realmente solicite la página.

1

Sobre el tema the spec es mudo y simplemente dice:

La palabra clave de recuperación previa indica que preventivamente ir a buscar y almacenamiento en caché el recurso especificado es probable que sea beneficioso, ya que es altamente probable que el usuario requerirá este recurso

De esto podemos decir que la ejecución de JS en las páginas prebuscados es indefinido.

Si un vendedor de navegador ve el beneficio en la ejecución de JS en las páginas extraídas previamente depende del vendedor.

+0

Acabo de descubrir que la recuperación previa solo carga el elemento de nivel superior, sin embargo, prerender obtendrá todos los elementos secundarios y ejecutará JS. –

Cuestiones relacionadas