7

我们在这里有一个使用 Wufoo 表单和 Wufoo jQuery API 的站点。

我们从 API 中提取数据,对其进行排序,然后将其显示在页面上。当我们提交数字高于当前前 10 名的表单时,它应该在右侧实时更新,因为表单会重定向回自身。它这样做,但不是在 IE 中。相反,在提交表单和显示新数据之间似乎存在不必要的延迟。关闭浏览器并重新打开页面似乎可行,但这没有帮助。

这是我们正在使用的 jQuery:

<script>
    $.wufooAPI.getEntries({
        "callback"   : processEntries,             
        "formHash"   : "x7x1x7",                   
        "sortID"   : "Field3",                   
        "sortDirection"   : "DESC",
    });
    function processEntries(data) {
        $.each(data.Entries.slice(0, 10), function(entriesIndex, entriesObject) {
            // Make sure this entry has all the required bits
            if (entriesObject.Field1 && entriesObject.Field3) {
                $("#attendeeTemplate").tmpl(entriesObject).appendTo("#people ul");  
            }
        });
    };

</script>

这是模板代码:

            <script id="attendeeTemplate" type="text/x-jquery-tmpl">
                <li>
                    <h4>${Field1}</h4>
                    ${Field3} minutes
                </li>
            </script>

它在除 IE8 和 9 之外的所有浏览器中都能完美运行,因为它看起来像是在缓存数据而不是从服务器拉取请求。

有什么办法可以停止在 IE 中缓存 jQuery?

4

1 回答 1

20

一种简单的方法是使用时间戳来欺骗和加盐您的请求网址(但这有点笨拙)。您可以关闭ajax 请求的缓存

$.ajaxSetup ({
    // Disable caching of AJAX responses
    cache: false
});

MSDN 在 IE http://support.microsoft.com/kb/234067中有一个关于缓存避免的页面。

于 2012-05-16T22:32:30.510 回答