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

解决使用oscache不能缓存ajax跨域请求的问题

阅读更多
    最近在开发一个功能,由于用户访问数量巨大,每天有千万级别的访问量。所以多数jsp页面使用了oscache作为缓存。
    但是有些页面是提供给其他项目使用的,而且使用了ajax的跨域请求。所以当页面有一个ajax请求到服务器时,总是创建一个new cache,经过研究发现,ajax跨域请求时总是随机生成一个jsoncallback的方法名,所以每次调用的url都不一样。
http://******/loginAction.do?method=login&prog=10&tags=cat&tagmode=any&format=json&jsoncallback=?
    后来把这个jsoncallback的名称设成固定的名称
http://******/loginAction.do?method=login&prog=10&tags=cat&tagmode=any&format=json&jsoncallback=callbackfunction
   发现这样也可以跨域请求,但是每次还是生成新的cache.后来发现,原来jquery在执行跨域请求时,为了清除cache在url后面额外增加了一个参数"_",每次生成不同的值。于是修改jquery.js文件,将其中生成随机值的去掉。
if ( s.dataType == "script" && s.cache == null )
s.cache = false;
             //在此处插入s.cache=true
if ( s.cache === false && type == "GET" ) {
var ts = now();
// try replacing _= if it is there
var ret = s.url.replace(/(\?|&)_=.*?(&|$)/, "$1_=" + ts + "$2");
// if nothing was replaced, add timestamp to the end
s.url = ret + ((ret == s.url) ? (s.url.match(/\?/) ? "&" : "?") + "_=" + ts : "");
}

到此,解决了使用oscache不能缓存ajax跨域请求的问题
分享到:
评论
2 楼 cljhyjs 2009-03-11  
跨域请求时有这个设置吗?
1 楼 tidus 2009-03-11  
jQuery 里的 ajax在请求时可以设置 cache 属性

相关推荐

    基于OSCache的页面缓存(收藏)

    OSCache虽然不直接支持分布式缓存,但可以通过与其他分布式缓存服务(如Redis、Memcached)结合使用来实现。 总结起来,OSCache作为一款强大的缓存工具,为Java开发者提供了便捷的页面缓存功能。通过合理配置和编程...

    OsCache缓存框架使用示例

    为了解决这个问题,我们可以利用OsCache来缓存最近查询过的天气信息,当有新的查询请求时,首先检查缓存中是否存在该数据,如果存在则直接返回,无需再次调用外部服务。 具体实现步骤如下: 1. 引入OsCache依赖:...

    oscache-java缓存框架

    - **数据一致性**:缓存与数据库数据的同步问题,避免出现数据不一致。 通过以上介绍,我们可以看到osCache是一个强大且灵活的缓存框架,它能够显著提升Java应用的性能。在实际开发中,正确理解和使用osCache,...

    oscache,缓存机制的使用

    oscache是一款开源的Java缓存解决方案,其核心功能在于能够缓存Web应用中的动态内容,从而显著提升页面加载速度和服务器资源利用率。它通过在服务器端存储已生成的动态数据,避免了频繁的数据查询和页面渲染,有效...

    oscache-JSP缓存

    如果不存在,那么执行正常的业务逻辑,生成结果并存储到缓存中,供后续请求使用。osCache还支持缓存过期策略,可以根据时间或者更新频率自动清理过期的缓存项。 **3. osCache的主要特性** - **内存管理**:osCache...

    oscache缓存技术

    **osCache缓存技术详解** osCache是一款广泛应用于Java应用程序中的开源缓存解决方案,由OpenSymphony团队开发。它提供了一种高效、可扩展的方式来管理应用程序中的数据缓存,从而提高系统的性能和响应速度。...

    oscache对象缓存

    总的来说,oscache作为一款强大的对象缓存工具,为Java开发者提供了高效的数据缓存解决方案。理解其工作原理和使用方式,有助于优化应用性能,提升用户体验。在实践中,开发者应结合具体业务需求,灵活运用oscache的...

    Oscache使用教程

    若不存在,则从底层数据源(如数据库)获取数据,并将其放入缓存,以备后续请求使用。这种机制显著提高了高并发环境下的系统性能。 **二、Oscache配置** 1. **引入依赖**:在项目中,你需要在构建文件(如Maven的...

    ajax4jsf-1.1.0.jar,oscache-2.3.2.jar

    Ajax4JSF与OSCache是两个在Java Web开发中经常使用的库,特别是在使用JavaServer Faces (JSF)框架时。这两个jar文件,"ajax4jsf-1.1.0.jar" 和 "oscache-2.3.2.jar",在开发过程中扮演着至关重要的角色。 Ajax4JSF...

    oscache缓存配置

    《osCache缓存配置详解》 osCache是Java平台上的一个高效、易用的缓存解决方案,它由Tuckey组织开发,广泛应用于各种Web应用中,以提高数据读取速度,减轻数据库压力。osCache的核心功能是提供了一个内存中的对象...

    OSCache配置说明文档

    OSCache作为一款广泛使用的缓存框架,主要解决了Java应用中的数据重复计算和加载问题,从而显著提高系统响应速度。其特性包括但不限于: 1. 缓存任何对象:无论是部分JSP页面、HTTP请求,还是自定义的Java对象,...

    oscache缓存技术入门实例

    osCache 是一个开源的、基于Java的缓存框架,它为Java应用程序提供了高效且可配置的内存缓存功能。在本文中,我们将深入探讨osCache的基本概念、工作原理以及如何在实际项目中进行配置和使用。 一、osCache基本概念...

    OSCache缓存技术(6)【实例】

    以上就是OSCache缓存技术的基本介绍,通过理解并熟练掌握OSCache,开发者能够有效地提升应用性能,降低数据库压力,为用户带来更流畅的体验。在实践中,还需要根据具体项目需求进行优化和调整,以达到最佳的缓存效果...

    教你如何用好oscache的详细文档

    osCache 使用内存作为缓存介质,当数据首次被请求时,会从数据库或其他数据源获取并存储到缓存中。之后的请求会首先检查缓存中是否存在所需的数据,如果存在且未过期,则直接从缓存返回;若不存在或已过期,再次从...

    oscache缓存

    osCache是Java平台上的一个高效的缓存解决方案,主要用于在应用程序中缓存数据,以提高性能和减少数据库的负载。这个工具特别适用于那些需要频繁访问但更新不频繁的数据,例如经常查询但很少更改的数据库记录。...

    oscache的使用实例和详解

    - **获取数据**: 使用`get(key)`方法根据键获取缓存中的数据,如果不存在则返回null。 - **移除数据**: 使用`remove(key)`方法从缓存中删除指定键的数据。 - **清空缓存**: 可以通过`clear()`方法清空整个缓存,...

    oscache缓存使用总结.doc

    OSCache 是一个广泛使用的开源缓存解决方案,尤其在Java应用中,它被JBoss, Hibernate, Spring等知名框架所支持。其主要特点是配置简单,适用于页面级别的缓存管理。以下是对OSCache配置和使用过程的详细说明: 1. ...

Global site tag (gtag.js) - Google Analytics