在页面加载

时间:2015-06-24 22:22:19

标签: jquery ajax

我试图推迟执行ajax调用,直到完全呈现页面上的每个元素并下载初始请求中的所有内容。

我完全了解

$(function() { //DOM ready });  

我尝试了window.loading事件也没有运气

$(window).load(function(){//page fully loaded});  

据我所知,window.load事件应该只在所有内容下载完毕后才会触发;但是,在我的网络选项卡中,我看到我的ajax调用在所有请求完成之前就已经开始了。因此,来自我的ajax调用的回调间歇性地工作。有时候我没有得到通知,有时我会得到所有通知,有时候我得到通知。在setTimeout()中设置我的ajax调用,等待时间很长。 (这很笨重且不可预测)

我的ajax调用的目的是触发对服务器的调用,在数据库上运行查询,并使用websockets通过用户可能已挂起的任何通知来更新UI。

我的问题是:有没有更好的方法来确保我的ajax仅在我的页面上完成所有内容加载后才会运行?

修改
整个事情不起作用的原因是因为当我的websocket触发UI jquery代码时,显示通知标记所需的html元素并不总是可用。

Ajax =>服务器代码(Web套接字)=> [此步骤并不总是可以使用受影响的html]在客户端上触发Js(更新UI)

0 个答案:

没有答案