2011-08-09 93 views
0

有一些代码,看起来像这样:

$(window).load(function(){ 
    sendAGetRequest(); 
} 

定期对生产,GET请求被发送多次。我可以使用数据包嗅探器来查看。

这在本地是不可复制的。

这里有几个类似的问题,但他们似乎没有多大用处。

我想知道的是:

  • 为什么功能sendAGetRequest()被调用多次?
  • 什么样的事情可能导致这种情况只发生在生产上而不是本地?

我怀疑问题是$(window).load,并且正在考虑将其更改为$(document).ready。这是一个很好的电话吗?正如我所说的,我不能在本地重现问题,我不想上传某些东西而不知道它是否可以真正解决问题。

+0

没有足够的信息说任何一种方式。而不是数据包嗅探器,您是否尝试过'console.log()'来查看JS本身是否运行多次? –

回答

0

$(window).load只会在页面完全加载(包括图片)时触发。当整个DOM准备就绪时,$(document).ready将被触发。这是触发此类请求的好处,因为您不必等待整个资源被加载。我不确定为什么这个函数被多次调用,尽管在理论上它不应该。

0

我想象一下,连接事件处理函数的load()函数被多次调用的事件。每次调用load()时,都会挂接另一个函数处理程序,并且所有这些处理程序都会在load事件触发时被调用。

使用document.ready是一个很好的电话,但如果以上情况属实,将不会对您有所帮助。