0

приведенный ниже код проверяет, загружен ли URL-адрес, а затем записывается в консоль. Я хотел бы знать, существует ли простой, чистый метод проверки загрузки страницы из bfcache или кеша http? Документация Firefox утверждает, что событие load не должно запускаться, если я перехожу от URL-адреса A к B, а затем удаляю кнопку «Назад» на URL-адрес A, но это не мой опыт, и как load, так и PageShow регистрируются независимо от того, кто-нибудь знает, почему?Проверьте, загружена ли страница с bfcache, HTTP-кешем или недавно полученным

var tabs = require("sdk/tabs"); 

function onOpen(tab) { 
    tab.on("pageshow", logPageShow); 
    tab.on("load", logLoading); 
} 

function logPageShow(tab) { 
    console.log(tab.url + " -- loaded (maybe from bfcache?) "); 
} 

function logLoading(tab) { 
    console.log(tab.url + " -- loaded (not from bfcache) "); 
} 

tabs.on('open', onOpen); 
+0

Если вы собираетесь сделать заявление о документации, подтверждающей что-то, укажите ссылку на документацию, где указано это. – Makyen

ответ

0

Я не уверен, есть ли какой-либо целенаправленной API для этого, но обходной путь, что пришло на ум, чтобы проверить значение performance.timing.responseEnd - performance.timing.requestStart. Если это <= 5, то, скорее всего, это HTTP или back-forward cache. В противном случае это загрузка из Интернета.

Способ распознавания возврата на страницу с помощью кнопки back вместо открытия чистого URL-адреса заключается в использовании history API. Например:

// on page load 
var hasCameBack = window.history && window.history.state && window.history.state.customFlag; 
if (!hasComeBack) { 
    // most likely, user has come by following a hyperlink or entering 
    // a URL into browser's address bar. 
    // we flag the page's state so that a back/forward navigation 
    // would reveal that on a comeback-kind of visist. 
    if (window.history) { 
     window.history.replaceState({ customFlag: true }, null, null); 
    } 
} 
else { 
    // handle the comeback visit situation 
} 

См. Также Manipulating the browser history статья в MDN.

Смежные вопросы