Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.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 在Chrome中从睡眠中醒来时变量未定义_Javascript_Jquery_Ajax_Macos_Google Chrome - Fatal编程技术网

Javascript 在Chrome中从睡眠中醒来时变量未定义

Javascript 在Chrome中从睡眠中醒来时变量未定义,javascript,jquery,ajax,macos,google-chrome,Javascript,Jquery,Ajax,Macos,Google Chrome,使用MacOSX10.8.4,Chrome27(最新版本) 我有一个脚本,它每X秒(使用setInterval())使用jQuery进行一次AJAX调用,以查看是否仍然存在到服务器的连接(心跳)。它发布一些数据,并根据是否成功调用其他函数 它工作正常,直到我的Mac进入睡眠状态(屏幕变黑、硬盘断电等),我唤醒它,AJAX调用失败,并尝试调用一个显然不再存在的函数(变量): POST http://mywebsite.com/index.php jquery.min.js:4 Uncaught

使用MacOSX10.8.4,Chrome27(最新版本)

我有一个脚本,它每X秒(使用
setInterval()
)使用jQuery进行一次AJAX调用,以查看是否仍然存在到服务器的连接(心跳)。它发布一些数据,并根据是否成功调用其他函数

它工作正常,直到我的Mac进入睡眠状态(屏幕变黑、硬盘断电等),我唤醒它,AJAX调用失败,并尝试调用一个显然不再存在的函数(变量):

POST http://mywebsite.com/index.php  jquery.min.js:4
Uncaught TypeError: Cannot call method 'onLost' of undefined
onLost
是其他变量中的函数,例如
mylib
anotherlib
。它们在加载页面时很早就被实例化了。代码要复杂得多,但这里有一个简化版本:

var mylib = new mylib();

mylib.anotherlib = function() { this.onLost = function() { ... }}

setInterval() { function() { $.ajax({ failed: mylib.anotherlib.onLost }); }, 10000);
错误发生后,我的脚本表现正常。它可以访问
mylib
onLost()。我知道当电脑以不同的方式睡眠时,浏览器会执行
setTimeout()
setInterval()
(Chrome是否会暂停或减慢它或其他什么?),但这仍然是一个奇怪的错误


这可能是我调用
失败的方式
还是jQuery的
$.ajax()
是如何工作的?

我们需要更多的上下文来了解
mylib
是如何定义的。@Barmar补充道(主要是)。