`
longgangbai
  • 浏览: 7374867 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Ajax获取页面被缓存的解决方案

阅读更多

AJAX页面参数相同时只返回缓存的内容的解决办法

常利用AJAX写一些页面无刷新的内容获取页面,这种方式很快捷也很方便,但其中有一个问题,就是如果两次提交的参数相同时,返回的内容只返回上次获取的内容,如果我们在第一次修改了参数,第二次再次调用却会发现页面根本没有改变。这样的情况是是为AJAX获取时先检查本机缓存,如果本机缓存已有相同内容,则不访问远端服务器。这样的操作倒是可以提高速度和减少服务器压力。但带来的弊端也是显而易见的。

为了解决这个问题。我们必须在获取页加上一个额外的参数。比较简单的方法是用一个随机数。

例子如下

 

function idCheck() {  //参数调用函数
var f = document.modify_form;
var book_num = f.book_num.value;
if(book_num=="") {
window.alert("图书编号不能为空");
f.book_num.focus();
return false;
}
//加一个随机数//////////////////////////////
var number = Math.random();
number = number * 1000000000;
number = Math.ceil(number);
//////////////////////////////////////////
send_request('get_book.php?book_num='+book_num+'&ranum='+number);  // 后面的 “ranum=number”是额外加的
}

 

这样就可以避免相同参数页面返回同样内容的问题了。

还有一种方法为在被调用的页面中,加入代码,禁止本页面被缓存

 

htm网页
<metahttp-equiv="pragma"content="no-cache">
<metahttp-equiv="cache-control"content="no-cache,must-revalidate">
<metahttp-equiv="expires"content="wed,26feb199708:21:57gmt">
或者<metahttp-equiv="expires"content="0">
asp网页
response.expires=-1
response.expiresabsolute=now()-1
response.cachecontrol="no-cache"
php网页
header("expires:mon,26jul199705:00:00gmt");
header("cache-control:no-cache,must-revalidate");
header("pragma:no-cache");
jsp网页
response.addHeader("pragma", "no-cache");
response.addHeader("cache-control", "no-cache,must-revalidate");
response.addHeader("expires", "0");

 

论坛交流地址:

http://bbs.okajax.com/viewthread.php?tid=995&highlight=%BB%BA%B4%E6
或者http://bbs.okajax.com/viewthread.php?tid=4368&highlight=%BB%BA%B4%E6

 

分享到:
评论

相关推荐

    Ajax 缓存问题,Ajax 缓存问题

    在Web开发中,Ajax(Asynchronous JavaScript and XML)技术被广泛使用来实现页面的异步更新,提升用户体验。然而,Ajax缓存问题可能会导致一些意料之外的状况,特别是当服务器端的数据发生变化时,浏览器仍然展示旧...

    .net中ajax学习解决方案

    在".net中ajax学习解决方案"这个压缩包中,我们可以找到关于学习和应用AJAX技术的资源。"ajax学习"可能是一个包含教程、示例代码和讲解文档的文件或文件夹,而"ajaxѧϰ"可能是教学材料或练习项目,"ѧϰ"在拼音中...

    Ajax中浏览器的缓存问题解决方法

    Ajax技术在网页开发中被广泛用于实现异步数据交换,其核心在于无需刷新整个页面即可从服务器获取所需数据。然而,浏览器的缓存机制可能会导致Ajax请求无法每次都从服务器端获取最新的数据,这就引出了浏览器缓存问题...

    AJAX 缓存问题的两种解决方法(IE)

    对于IE浏览器中的AJAX缓存问题,有两种常见的解决方案: 1. **添加随机参数** 为了防止IE浏览器缓存AJAX请求的结果,可以在每次发送AJAX请求时,向URL中添加一个随机参数,通常使用当前时间戳或者随机数。这样做...

    ajax清除IE缓存技术文档

    **四、脚本之家提供的解决方案** 在《AJAX 缓存问题的两种解决方法(IE)_AJAX相关_脚本之家》这篇文章中,可能详细介绍了针对IE浏览器的特定解决策略。通常,IE浏览器对缓存的处理与其他浏览器略有不同,可能需要...

    jquery .ajax 局部刷新之后 js无法调用问题解决

    下面将详细探讨这个问题及其解决方案。 ### 1. DOM更新问题 当`.ajax`成功返回数据并更新了DOM元素,原有的JavaScript引用可能已经失效。例如,如果你在页面加载时为某个元素绑定了事件监听器,然后通过`.ajax`替换...

    在开发AJAX过程中遇到的问题及解决方案

    ### 在开发AJAX过程中遇到的问题及解决方案 #### 一、引言 随着互联网技术的不断发展,AJAX(Asynchronous JavaScript and XML)作为一种重要的前端技术,被广泛应用于网页应用的开发中。它允许网页在不重新加载...

    ajax缓存问题解决途径

    7. **使用AJAX库的特定解决方案**: 不同的AJAX库可能有其特定的处理缓存的方法。例如,jQuery的`$.ajaxSetup()`可以全局设置默认的缓存行为。 理解并掌握这些策略可以帮助你有效地解决Ajax缓存问题,确保用户始终...

    如何解决Ajax请求结果的缓存问题说明

    随着Web技术的发展,Ajax(Asynchronous JavaScript and XML)已经成为现代Web应用不可或缺的一部分,它允许网页在不重新加载整个页面的情况下更新部分数据。然而,在实际开发过程中,开发者可能会遇到一个问题:...

    ajax调用中ie缓存问题解决方法

    本文主要探讨了在Ajax调用中遇到的IE浏览器缓存问题及其解决方案。 Ajax请求通常用于向服务器获取数据,更新网页部分区域,而不刷新整个页面。然而,在Internet Explorer(IE)浏览器中,如果XMLHttpRequest请求的...

    ajax清理缓存

    ### AJAX 清理缓存详解 #### 一、引言 在现代Web开发中,AJAX(Asynchronous JavaScript and XML)技术被广泛应用于构建动态网页应用...开发者应根据实际情况选择合适的解决方案,以确保应用程序的稳定性和用户体验。

    IE下Ajax缓存问题的快速解决方法(get方式)

    针对这个问题,我们有两种主要的解决途径:客户端解决方案和服务端解决方案。 1. **客户端解决方案**: - **更改IE访问策略**:用户可以在Internet选项中设置浏览器行为,将“浏览历史记录”的“设置”里的...

    js浏览器缓存.doc

    - **页面刷新问题**:例如,在执行删除操作后,由于缓存的存在,页面上可能仍然显示被删除的记录。 ##### 2.3 影响因素 - **请求类型**:根据讨论,GET请求更易受到缓存的影响;而POST请求通常不被缓存。 - **...

    实现在客户端的页面缓存

    4. **数据更新**:当服务器上的数据发生变化时,需要同步更新客户端的缓存,可以通过Ajax或Websocket等方式实时获取服务器的新数据,然后更新Flash中的SharedObject。 然而,需要注意的是,随着HTML5技术的发展,...

    基于文件缓存的AJAX和代码生成带数据库地区id的纯JS-省市区三级联动

    这个资源提供了一个基于文件缓存的解决方案,结合了AJAX和纯JavaScript技术,特别适合需要动态加载和更新地区数据的场景。下面我们将深入探讨这个资源的核心知识点。 首先,`AJAX`(Asynchronous JavaScript and XML...

    AJAX快车道 AJAX快车道

    跨域问题与解决方案 由于同源策略限制,AJAX请求通常只能访问同一域名下的资源。为解决跨域问题,可以采用JSONP、CORS(跨源资源共享)或代理服务器等方法。 ### 6. AJAX的最佳实践 - **避免阻塞UI**:尽量使用...

    ajax视频教程1

    为了解决跨域问题,JSONP是一种非官方的解决方案。它通过动态插入`&lt;script&gt;`标签来获取数据,因为浏览器允许跨域加载脚本。 ### 6. 跨域Ajax 出于安全考虑,浏览器限制了Ajax的跨域请求。但通过CORS(Cross-Origin ...

    ajax的动态加载

    **Ajax 动态加载技术详解** Ajax(Asynchronous JavaScript and XML)是一种在无需刷新整个网页的情况下,能够更新部分网页的技术。...但同时也需要注意其带来的挑战,并适时采用相应的解决方案。

Global site tag (gtag.js) - Google Analytics