javascript - 在 setTimeout 中调用自身的 javascript 函数的 IE8 问题

标签 javascript internet-explorer settimeout

我有一个用 javascript 定义的定位函数

var locID;

function locateMe()
{
    if(locID > 0)
    {
        // i do a jquery post here
    }

    setTimeout(locateMe, 2000);
} 

// my document ready function is here, and inside it, at the end of it
// i do this
locID = 0;
locateMe();

当我在 firefox 中测试此代码时,locateMe 函数每两秒调用一次,并且按预期工作。当我在 IE8 中测试代码时,该函数永远不会被调用(至少从我使用 IE 的开发人员工具看到的情况来看,它似乎永远不会被调用)

注意:在修改 locID 的“zone_row”类的单击事件处理程序中定义了代码。同样,在 Firefox 中,一切都按预期工作。奇怪的是,在 IE 中,当单击 zone_row 时,该函数将被调用一次。我可以在开发人员工具上以及通过该 jquery 帖子的操作结果看到这一点。

我认为 IE 有一些我还不熟悉的异常。我做错了什么?

编辑:更改“locateMe();”在 setTimeout 调用中定位我。

更新:添加更多我的代码(根据评论中的请求)以显示展示位置(尽管代码不比我的第一篇文章多多少)。

<script type="text/javascript">
    var z_items;
    var locID;

    function locateMe()
    {
            if(locID > 0)
            {
                    // my jquery post is here                   
            }   

            setTimeout(locateMe, 2000);
    }

    $(document).ready(function()
    {
            // ... some click events and get requests here ...

            locID = 0;
            locateMe();
    });
</script>

最佳答案

问题解决了。我从这篇文章中找到了另一个问题的答案:

Prevent browser caching of jQuery AJAX call result

添加 $.ajaxSetup({ cache: false });对于我的文档准备功能,它也解决了这个问题。看起来一直都是缓存问题。

关于javascript - 在 setTimeout 中调用自身的 javascript 函数的 IE8 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4902287/

相关文章:

html - 相同的代码,相同的浏览器,相同的网络服务器,但看起来还是不一样

带有 MVC 的 Javascript 在没有浏览器调试器的情况下无法在 IE 中运行

html - 网站在 Firefox 中速度快,在 Internet Explorer 中一般,在 Google Chrome 中速度慢

javascript - 图像无法在 SetTimeout 中重新出现

javascript - 重置计时器错误 - Javascript

javascript - dropzone.js:如何重命名文件?

javascript - 确认弹出后通过表单发布数据 - PHP

jquery - 延迟后淡出 jQuery 菜单

javascript - 只使用一个循环来生成嵌套数组

javascript - 如何将 12 小时添加到当前日期?