我正在尝试使用 jQuery 更新用户字段。
我的代码是...
jQuery(document).ready(function(){
setInterval("imStillAlive()", 6000);
function imStillAlive() {
jQuery.post('/users/update_useractive',
function(data){
alert("updated");
});//post
}
});
上面的代码运行时显示错误...
"imStillAlive" not defined
如何解决?
最佳答案
这里有几个问题......
"imStillAlive()"
在内部调用一个eval()
类型的函数。不要那样做。- 您在
setInterval()
中发帖。在再次调用之前,您不想知道帖子已经完成吗? - 您没有进行任何 DOM 操作,所以不要等待 DOM 准备就绪。
imStillAlive()
是一个非常糟糕的函数名称。- 现在这个有点有形了,但是如果它被用来确定用户是否仍然在您的网站上活跃,那么 6 秒更新您的数据库是不是有点太频繁了?此外,如果有人让他们的浏览器保持打开状态,这是否会不必要地消耗资源?如果许多用户让他们的浏览器保持打开状态,这不会是你自己在 DOSing 吗? :P
这似乎更好......
(function($) {
(function update() {
setTimeout(function() {
$.post('/users/update_useractive',
function(data){
alert("updated");
update();
});
}, 6000);
})();
})(jQuery);
关于javascript - 我在 jQuery 中使用 setInterval 得到 "function not defined"。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4301085/