Я прошел чужой код и немного исправил ситуацию, и я столкнулся с некоторым кодом, который я не совсем понимаю. Не могли бы вы объяснить мне, что здесь происходит, и о том, как это реализовано и, возможно, лучшее решение для обработки хранилища сеансов для использования или просто лучший способ написать код?Может ли кто-нибудь объяснить этот код хранения сеанса?
//Load Content from Cache if this is not a Refresh or new Page Load
if ((document.referrer!=null)&&(sessionStorage.getItem('lastReferrer')!=document.referrer)){
if (('sessionStorage' in window) && (window['sessionStorage'] !== null)) {
if ('@Name'+window.location.href in sessionStorage){
$("#@Name").html(sessionStorage.getItem('@Name'+window.location.href));
$(window).scrollTop(sessionStorage.getItem('@Name'+'ScrollPos'+window.location.href));
jQuery.data($('#ResponderScripts')[0],'cs_page',sessionStorage.getItem('@Name'+'Page'+window.location.href));
jQuery.data($('#ResponderScripts')[0],'cs_totalPages',sessionStorage.getItem('@Name'+'TotalPage'+window.location.href));
pageLoadedFromCache=1;
console.log('Replaced from Cache: @name url='+window.location.href+' referrer='+document.referrer+' page='+$('#ResponderScripts').data("cs_page"));
}
}
};
// Save Component Content when leaving the page.
$(window).unload(function() {
history.replaceState({}, document.title,window.location.href);
if (('sessionStorage' in window) && (window['sessionStorage'] !== null)) {
var componentContent = $("#@Name").html();
if (componentContent!=null){
sessionStorage.setItem('@Name'+window.location.href, componentContent);
sessionStorage.setItem('@Name'+'ScrollPos'+window.location.href,$(window).scrollTop());
sessionStorage.setItem('@Name'+'Page'+window.location.href,$('#ResponderScripts').data("cs_page"));
sessionStorage.setItem('@Name'+'TotalPage'+window.location.href,$('#ResponderScripts').data("cs_totalPages"));
console.log('stored @name url='+window.location.href+' referrer='+document.referrer+' page='+sessionStorage.getItem('@Name'+'Page'+window.location.href));
}
}
});
Спасибо, спасибо за помощь! Если это не место для этого, дайте мне знать, и я могу его удалить.
Вместо downvoting меня могли бы вы сказать мне, если это не место для этого, потеряв респ болит когда у меня так мало. – BlunderCode
Похоже, он делает то, что он говорит, загружая содержимое из кеша, если это не обновление или загрузка новой страницы. Честно говоря, я не знаю, как он это сделает (если это действительно огромные страницы в медленной сети). –
Это написано для обработки бесконечных прокрутки и истории браузера ajax. Будет ли я лучше переписывать его полностью или это стандартно? – BlunderCode