最近在开发一个功能,由于用户访问数量巨大,每天有千万级别的访问量。所以多数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跨域请求的问题
分享到:
- 2009-03-10 14:47
- 浏览 2324
- 评论(2)
- 论坛回复 / 浏览 (2 / 2946)
- 查看更多
相关推荐
OSCache虽然不直接支持分布式缓存,但可以通过与其他分布式缓存服务(如Redis、Memcached)结合使用来实现。 总结起来,OSCache作为一款强大的缓存工具,为Java开发者提供了便捷的页面缓存功能。通过合理配置和编程...
为了解决这个问题,我们可以利用OsCache来缓存最近查询过的天气信息,当有新的查询请求时,首先检查缓存中是否存在该数据,如果存在则直接返回,无需再次调用外部服务。 具体实现步骤如下: 1. 引入OsCache依赖:...
- **数据一致性**:缓存与数据库数据的同步问题,避免出现数据不一致。 通过以上介绍,我们可以看到osCache是一个强大且灵活的缓存框架,它能够显著提升Java应用的性能。在实际开发中,正确理解和使用osCache,...
oscache是一款开源的Java缓存解决方案,其核心功能在于能够缓存Web应用中的动态内容,从而显著提升页面加载速度和服务器资源利用率。它通过在服务器端存储已生成的动态数据,避免了频繁的数据查询和页面渲染,有效...
如果不存在,那么执行正常的业务逻辑,生成结果并存储到缓存中,供后续请求使用。osCache还支持缓存过期策略,可以根据时间或者更新频率自动清理过期的缓存项。 **3. osCache的主要特性** - **内存管理**:osCache...
**osCache缓存技术详解** osCache是一款广泛应用于Java应用程序中的开源缓存解决方案,由OpenSymphony团队开发。它提供了一种高效、可扩展的方式来管理应用程序中的数据缓存,从而提高系统的性能和响应速度。...
总的来说,oscache作为一款强大的对象缓存工具,为Java开发者提供了高效的数据缓存解决方案。理解其工作原理和使用方式,有助于优化应用性能,提升用户体验。在实践中,开发者应结合具体业务需求,灵活运用oscache的...
若不存在,则从底层数据源(如数据库)获取数据,并将其放入缓存,以备后续请求使用。这种机制显著提高了高并发环境下的系统性能。 **二、Oscache配置** 1. **引入依赖**:在项目中,你需要在构建文件(如Maven的...
Ajax4JSF与OSCache是两个在Java Web开发中经常使用的库,特别是在使用JavaServer Faces (JSF)框架时。这两个jar文件,"ajax4jsf-1.1.0.jar" 和 "oscache-2.3.2.jar",在开发过程中扮演着至关重要的角色。 Ajax4JSF...
《osCache缓存配置详解》 osCache是Java平台上的一个高效、易用的缓存解决方案,它由Tuckey组织开发,广泛应用于各种Web应用中,以提高数据读取速度,减轻数据库压力。osCache的核心功能是提供了一个内存中的对象...
OSCache作为一款广泛使用的缓存框架,主要解决了Java应用中的数据重复计算和加载问题,从而显著提高系统响应速度。其特性包括但不限于: 1. 缓存任何对象:无论是部分JSP页面、HTTP请求,还是自定义的Java对象,...
osCache 是一个开源的、基于Java的缓存框架,它为Java应用程序提供了高效且可配置的内存缓存功能。在本文中,我们将深入探讨osCache的基本概念、工作原理以及如何在实际项目中进行配置和使用。 一、osCache基本概念...
以上就是OSCache缓存技术的基本介绍,通过理解并熟练掌握OSCache,开发者能够有效地提升应用性能,降低数据库压力,为用户带来更流畅的体验。在实践中,还需要根据具体项目需求进行优化和调整,以达到最佳的缓存效果...
osCache 使用内存作为缓存介质,当数据首次被请求时,会从数据库或其他数据源获取并存储到缓存中。之后的请求会首先检查缓存中是否存在所需的数据,如果存在且未过期,则直接从缓存返回;若不存在或已过期,再次从...
osCache是Java平台上的一个高效的缓存解决方案,主要用于在应用程序中缓存数据,以提高性能和减少数据库的负载。这个工具特别适用于那些需要频繁访问但更新不频繁的数据,例如经常查询但很少更改的数据库记录。...
- **获取数据**: 使用`get(key)`方法根据键获取缓存中的数据,如果不存在则返回null。 - **移除数据**: 使用`remove(key)`方法从缓存中删除指定键的数据。 - **清空缓存**: 可以通过`clear()`方法清空整个缓存,...
OSCache 是一个广泛使用的开源缓存解决方案,尤其在Java应用中,它被JBoss, Hibernate, Spring等知名框架所支持。其主要特点是配置简单,适用于页面级别的缓存管理。以下是对OSCache配置和使用过程的详细说明: 1. ...