0

在我网站的主页上,jquery.load()运行在$(document).ready(),并请求一个类似于以下内容的 URL:

“/ajax/Listings.aspx?pageindex=0”

当这个页面运行时,在Page_Load()aListView中绑定了一个DataSet返回一些产品的a。如果没有项目,则EmptyDataTemplate显示如下:

“目前没有产品”

在我的系统中,应该显示 1 个产品。在 FireFox 中,它会正确返回并显示在页面上。

但是,在 Internet Explorer 中EmptyDataTemplate会显示。此外,如果 URL ("/ajax/Listings.aspx?pageindex=0") 在 IE9 浏览器中打开(作为新选项卡),则返回 1 个产品。

为什么 IE9 不绑定任何项目到使用ListViewjQuery.Load()

4

2 回答 2

1

发布此消息后不久,我回去尝试看看我是否可以自己解决,并相信我已经找到了解决方案!

因为我在单独的选项卡中打开了 ajax 页面,所以当我返回主页时,现在正在显示。

因此,我相信这是缓存的,刷新缓存的唯一方法是在新选项卡中打开它。

因此,我在 URL 的末尾添加了一个随机字符串,以确保它不会每次都缓存页面:

function random_string() { return String((new Date()).getTime()).replace(/\D/gi, '') }

var url = "/ajax/Listings.aspx?pageindex=0&rnd=" + random_string
于 2011-05-13T11:08:16.670 回答
1

虽然将随机字符串附加到 URL 有效,但处理此问题的最佳方法是禁用缓存:

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

取自这里

于 2013-02-27T16:40:01.763 回答