Javascript 我可以在完全动态加载的页面上检测document.readyState类事件吗?
我目前正在构建一个网页,在使用Javascript 我可以在完全动态加载的页面上检测document.readyState类事件吗?,javascript,html,jquery,Javascript,Html,Jquery,我目前正在构建一个网页,在使用history.push进行导航时,用AJAX请求加载其子页面。因此,浏览器需要缓存各种资源,然后才能在URL更改中显示它们。 当我的代码通过AJAX加载下一页时(需要是普通的$.AJAX,而不是$.load,因为我不仅获取页面内容,还获取其他数据),我显示了一个加载屏幕 问题:我想显示这个屏幕,只要浏览器加载下一页上的每一个资源,以防止在打开眼罩时丢失图像或视频。在第一次加载时,我可以通过监听onreadystatechange或来管理这一点$(document)
history.push
进行导航时,用AJAX
请求加载其子页面。因此,浏览器需要缓存各种资源,然后才能在URL更改中显示它们。
当我的代码通过AJAX加载下一页时(需要是普通的$.AJAX
,而不是$.load
,因为我不仅获取页面内容,还获取其他数据),我显示了一个加载屏幕
问题:我想显示这个屏幕,只要浏览器加载下一页上的每一个资源,以防止在打开眼罩时丢失图像或视频。在第一次加载时,我可以通过监听onreadystatechange
或来管理这一点$(document).ready()
-但在使用动态加载时如何实现这一点
是否有办法“重新收听”readyStateChange事件或解决此问题的任何其他可能性
致意
Lukas您可以使用
.ajaxSend
和.ajaxComplete
跟踪每个ajax请求
当没有更多未完成的ajax请求时,关闭加载初始屏幕。如果关闭在doc.ready中,则如果该文档已准备就绪,则关闭将立即运行
var xhrCount = 0;
$(document).ajaxSend(function (e, jqXHR, options) {
xhrCount++;
});
$(document).ajaxComplete(function (e, jqXHR, options) {
xhrCount--;
if (xhrCount === 0) {
$(function() { closeLoadingScreen(); });
}
});
有关更多信息,请参阅