gpt4 book ai didi

c# - jQuery "Microsoft JScript runtime error: Object expected"

转载 作者:数据小太阳 更新时间:2023-10-29 04:43:15 24 4
gpt4 key购买 nike

我有以下代码似乎根本不起作用 :( 我不断收到:

Microsoft JScript runtime error: Object expected

错误似乎是在超时完成时发生的。因此,如果我将超时时间提高 10 秒,错误会再持续 10 秒。

我希望能够异步更新在线好友数量。该号码显示在以下 html 中:

<a href="" id="showChat" >Friends online <strong id="friendsOnline">(?)</strong></a>

friend 部分在第一次运行时设置,但是当超时回调时它不会再次触发。另外,我看不到错误发生在哪一行,因为如果我想中断错误,它只会显示“无源代码”等。

下面的代码是我正在使用的代码。谢谢!

<script src="http://ajax.microsoft.com/ajax/jquery/jquery-1.3.2.js" type="text/javascript"></script> 
<script src='/Scripts/MicrosoftAjax.js' type="text/javascript"></script>
<script src='/Scripts/MicrosoftMvcAjax.js' type="text/javascript"></script>
<script src='/Scripts/jquery.autocomplete.js' type="text/javascript"></script>

<script type="text/javascript">
$(document).ready(function() {
UpdateFriendsOnline();
function UpdateFriendsOnline() {
window.setTimeout("UpdateFriendsOnline()", 1000);
$.get("/Account/GetFriendsOnline", function(data) {
$("#friendsOnline").html("(" + data + ")");

});
}
});
</script>

最佳答案

像这样更改您的 setTimeout():

window.setTimeout(UpdateFriendsOnline, 1000);

目前您的函数在 document.ready 之外不可用,因此它不能作为全局函数访问,将它作为字符串传递试图访问它。作为一般规则,永远不要永远传递 setTimeout() 一个字符串,如果你能避免的话……它会导致像这种情况这样的问题,我想不出一个例子(如果可以避免的话)通过它是一个字符串变得更好。

此外,我建议您在收到响应时触发它,否则您将开始排队重叠的 ajax 请求,您可以通过调整您的函数来做到这一点:

function UpdateFriendsOnline() {
$.get("/Account/GetFriendsOnline", function(data) {
$("#friendsOnline").html("(" + data + ")");
window.setTimeout(UpdateFriendsOnline, 1000);
});
}

关于c# - jQuery "Microsoft JScript runtime error: Object expected",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2916273/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com