gpt4 book ai didi

android(2.3.3) native 浏览器问题与处理程序

转载 作者:行者123 更新时间:2023-11-29 02:06:36 27 4
gpt4 key购买 nike

我目前正在使用 jqMobile 为移动设备开发 asp.net 网站。如果我在桌面浏览器(Chrome、Opera)或“Opera Mobile”中打开网站,一切正常,但 native 浏览器显示奇怪的行为:
第一次登录时一切正常,但如果我尝试重新登录或刷新页面上的信息(通过 ajax 请求)- 我收到旧结果,也没有实际发送给处理程序的请求。(在 android 2.3.3 模拟器上的行为相同)

如何强制浏览器发送请求以获取实际数据?

最佳答案

移动端有更积极的政策来缓存一些页面,所以有两种方法可以强制它重新加载。

一种方法是在每个ajax调用的末尾附加一个随机数,并调用页面,例如:/mypage?id=23&random=88374891

这可以由 jQuery 在 ajax 调用中使用 cache:false 自动完成,例如:

    jQuery.ajax({
url: FinalCall,
type: "GET",
dataType: 'html',
cache: false,
success: function(data)
{

第二种方式是使用 header 禁用任何可能的缓存,以强制页面不保留在移动缓存中,而是再次读取。这是一组禁用所有可能的缓存:

Response.Cache.SetExpires(DateTime.UtcNow.AddYears(-4));
Response.Cache.SetValidUntilExpires(false);
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches);
Response.Cache.SetNoStore();

Response.ExpiresAbsolute = DateTime.Now.Subtract(new TimeSpan(1, 0, 0, 0));
Response.Expires = 0;
Response.CacheControl = "no-cache";
Response.AppendHeader("Pragma", "no-cache");

希望这对您有所帮助。

关于android(2.3.3) native 浏览器问题与处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9701007/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com