Ⅰ 如何优雅的解决velocity与jquery的冲突
1、使用jQuery代替$. 如:jQuery.ajax();
缺点:不适合扩展,一旦替换成第三方库时,那就麻烦大发
2、使用jQuery.noConflict。 如:var j = jQuery.noConflict(); j.ajax();
缺点:当使用jQuery的相关插件时,会使得插件失效哦!
3、wrap jQuery中的冲突方法。
如$.ajax()在Velocity中会冲突,则重新定义如下:
function dw(){}
dw.ajax=function(s){ jQuery.ajax(s); } dw.ajax();
方案3基本上解决了1、2中的缺点~~~故推荐使用第三种方法!
4、
定义一个 $JQ="$."
以后可以用 ${JQ}ajax().......
5. (function($){
//......
})(jQuery);
可以解决大部分问题了
Ⅱ Ajax为什么需要使用缓存,缓存的优势有哪些
AJAX如果不进行设置的话,很多时候都是直接调用缓存处理的,缓存的优势当然是提高访问的速度了啊~
Ⅲ Ajax禁止缓存问题
在url后面增加一个,随机数当参数,就缓存不了。
jquery,cache:false的本质就是这样做的。
加入你请求的原始url是:
var url = "http://www.test.com/list";
你可以这样:
var random = Math.random();
url += "?_="+random;
Ⅳ 如何禁用jquery ajax缓存
我们先看看这个问题是怎么引起来的:
如果没有进行额外设置的话,如果请求的地址和参数及参数的值完全一样,就会发生jquery ajax使用缓存的情况。
jquery ajax使用缓存的解决方案:
1.在请求的url后面加上一个随机参数(***.do?random=Math.random)这不失为一个好方法,缺点就是在所有的jquery ajax请求的地方都要加上这个随机参数,新项目还行,老项目的花,这是个巨大的工作量。
2.给jquery ajax请求设置禁用缓存的全局设置
我们都知道在jquery ajax的的方法中有个cache参数,如果设置为false,那么就不进行缓存。这么怎么设置全局的jquery ajax cache参数呢?
答案就是ajaxSetup() 方法,该方法可以为所有的ajax请求统一设置默认参数。那么可以设置如下代码:
$(function(){
$.ajaxSetup ({
cache: false //关闭AJAX缓存
});
});
最后如果没有common.js文件(所有页面都调用的JS文件),那么把这段代码放到jquery库文件里面吧。
解答完毕!
Ⅳ 使用ajax的网站用pwa怎么改造
他那后面有吧
Ⅵ 有关jquery中ajax的缓存问题,怎么解决
jquery中ajax的缓存问题需要增加参数cache:
$.ajax({
type: "GET",
cache: true,
url: 'aa.php',
dataType: "html",
cache: true,
success: function (res) {
$('.page-loading').remove();
$('.page-content .page-content-body').html(res);
});
这样类似以下请求就可以缓存了:
aa.com/aa.php
aa.com/aa.css
aa.com/aa.js?_=1373600904652
Ⅶ 如何解决ajax与ssl层之间的冲突
使用一个统一filter处理。可以在每个ajax请求的header中加上同一个参数,表明是ajax请求,让统一的过滤器做安全验证。
Ⅷ ajax请求请求数据缓存问题分析以及解决方案
在发送ajax请求的时候,为了保证每次的都与服务器交互,就要传递一个参数每次都不一样,这里就用了时间戳
大家在系统开发中都可能会在js中用到ajax或者dwr,因为IE的缓存,使得我们在填入相同的值的时候总是使用IE缓存
什么是Ajax缓存原理?
Ajax在发送的数据成功后,会把请求的URL和返回的响应结果保存在缓存内,当下一次调用Ajax发送相同的请求时,它会直接从缓存中把数据取出来,这是为了提高页面的响应速度和用户体验。当前这要求两次请求URL完全相同,包括参数。这个时候,浏览器就不会与服务器交互。
Ajax缓存的好处
这种设计使客户端对一些静态页面内容的请求,比如图片,css文件,js脚本等,变得更加快捷,提高了页面的响应速度,也节省了网络通信资源。
Ajax缓存的不足
Ajax缓存虽然有上述的好处,但是如果通过Ajax对一些后台数据进行更改的时候,虽然数据在后台已经发生改变,但是页面缓存中并没有改变,对于相同的URL,Ajax提交过去以后,浏览器还只是简单的从缓存中拿数据,这种情况当然就不行了。
四、解决Ajax缓存问题的方法
解决这个问题最有效的办法是禁止页面缓存,有以下几种处理方法:
1、在ajax发送请求前加上 xmlHttpRequest.setRequestHeader(“Cache-Control”,”no-cache”);
2、在服务端加 header(“Cache-Control: no-cache, must-revalidate”);
3、在ajax发送请求前加上 xmlHttpRequest.setRequestHeader(“If-Modified-Since”,”0″);
4、在 Ajax 的 URL 参数后加上 "?fresh=" + Math.random(); //当然这里参数 fresh 可以任意取了
5、第五种方法和第四种类似,在 URL 参数后加上 "?timestamp=" + new Date().getTime();
6、用POST替代GET:不推荐
7、 jQuery 提供一个防止ajax使用缓存的方法:
javascript" language=" JavaScript ">
$.ajaxSetup ({
cache: false //close AJAX cache
});
8、修改load 加载的url地址,如在url 多加个时间参数就可以:
function loadEventInfoPage(eventId){
$.ajaxSetup ({
cache: true // AJAX cache 下面加上时间后load的页面中的js、css图片等都会重新加载,
//加上这句action会重新加载,但是js、css、图片等会走缓存
});
$("#showEventInfo").load(ctx + "/custEvents/viewEvent.action", {"complaint.Id":eventId, "tt":(new Date()).getTime()},function(){})
}
9、设置html的缓存
Ⅸ AJAX与JS冲突
为什么要用文件的形式引入呢?直接用脚本吧。如果RegisterStartupScript没效果,可能是DOM操作的问题,建议你用RegisterClientScriptBlock。