1

我正在使用 jQuery jEditable插件来编辑网站的某些部分。

由于文本使用 Textile 格式,我使用LoadURL选项来引入未格式化的数据。

当用户编辑一些文本,然后返回重新编辑它时,会出现问题,ajax 调用会带回缓存的结果

我试过添加一个随机参数,但是添加了相同的随机数,所以没有用。

        $(".edit").livequery(function(){$(this).editable("<%=Page.ResolveUrl("~/savetext.aspx") %>", {
             loadurl   : '<%=Page.ResolveUrl("~/gettext.aspx") %>?Rnd=' + Math.random().toString(),
             type      : 'textarea',
             cancel    : 'Cancel',
             submit    : 'Save',
             indicator : 'Saving...',
             rows      : 4,
             tooltip   : 'click to edit'
            });
        });

有没有办法告诉 jEditable 在每次调用中添加一个随机参数?

4

1 回答 1

1

我也看到了这个,但只是间歇性的。我意识到,在与 gettext.aspx(在我的情况下是 PHP 代码)等效的情况下,我没有设置响应标头来防止浏览器缓存。我添加了这样的东西,它似乎表现得更好:

header("Expires: Mon, 20 Dec 1998 01:00:00 GMT" );
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-cache, must-revalidate" );
header("Pragma: no-cache" );

我不是asp开发人员,但在四处搜索后,我认为等效的可能是:

HttpContext.Current.Response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1));
HttpContext.Current.Response.Cache.SetValidUntilExpires(false); 
HttpContext.Current.Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches);
HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.NoCache);
HttpContext.Current.Response.Cache.SetNoStore(); 
于 2010-01-20T14:40:40.013 回答