使用LoadURL选项可编辑检索缓存的结果

时间:2010-01-15 18:32:33

标签: jquery ajax caching jeditable

我正在使用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在每次通话中添加随机参数?

1 个答案:

答案 0 :(得分: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" );

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

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();