尝试执行两个函数递归时,未定义一个函数
One function is not defined when trying to do two function recursion
我有一个页面,客户端有时会长时间打开而不刷新(超过24小时(。该页面上的一些操作需要有效的PHP会话,因此我构建了一组简单的函数,每10分钟运行一次该检查。
2功能:
- checkLogin((
- refreshTimer((
我们调用checkLogin((来启动,checkLogin(调用refreshTimer((。定时器完成后,它应该调用checkLogin((,后者应该调用refreshTimer((并重新启动进程。
我们第一次直接调用checkLogin((时,一切都很好。然而,当refreshTime((尝试调用checkLogin((时,我会收到checkLogin的"未定义函数"错误
从我的研究来看,我应该能够调用checkLogin((,而无需将其传递给refreshTime((。
我确信我可能遗漏了一些显而易见的东西。谢谢你的帮助!
function checkLogin()
{
$.ajax({
url: "/mysite.com/dev/includes/check_login_helper.php",
success: function(logged_in)
{
if(logged_in == "false")
{
// they are logged out - redirect them to login page
alert("logged out");
}
}
});
refreshTimer();
}
function refreshTimer()
{
var t = setTimeout("checkLogin()",15000); // do each 10 min currently shorter for test
}
//start the process up
checkLogin();
已修复&使用checkInterval
function checkLogin()
{
$.ajax({
url: "/mysite.com/dev/includes/check_login_helper.php",
success: function(logged_in)
{
if(logged_in == "false")
{
// they are logged out - redirect them to login page
alert("logged out");
}
}
});
}
setInterval(checkLogin(),15000); // do each 10 min currently shorter for test
不要将字符串传递给setTimeout
;它是伪装的eval
。在这种情况下,也没有理由捕获setTimeout
返回的值。
function refreshTimer()
{
setTimeout(checkLogin, 15000);
}
var t = setTimeout("checkLogin()",15000);
需要
var t = setTimeout(checkLogin,15000);
此方法接受函数而不接受字符串。
相关文章:
- 现有函数未定义
- jQuery$.post可以在chrome、safari中工作,但不能在FF中工作(声明成功回调函数未定义)
- AngularJS ng repeat显示原型函数未定义
- jQuery onclick 函数:未定义不是一个函数
- 函数未定义
- 为什么在jsfiddle中显示ReferenceError:函数未定义
- 函数未定义,实际定义时为
- 函数未定义的Javascript(Basic)
- ajax函数未定义
- 为什么window.onload函数未定义
- 模块模式:函数未定义
- 包含的javascript源代码通过PHP,onmousemove事件,函数未定义
- 单击链接时出现函数未定义错误
- AngularJS和Angular Snap:SSnap构造函数未定义
- 在Node.js中,从同一文件中的另一个函数引用一个函数会导致'ReferenceError:-函数-未定义
- symfony trick javascript函数未定义
- 不断获取JS函数未定义错误
- AngularJS HTTP 资源 - 响应函数未定义
- 函数未定义,参数格式
- JavaScript 中的函数未定义