Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我可以在完全动态加载的页面上检测document.readyState类事件吗?_Javascript_Html_Jquery - Fatal编程技术网

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(); });
    }
});
有关更多信息,请参阅