解决AJAX中文乱码常用的两种方法 1. 在客户端进行encodeURI(utf-8也可以不做,默认),在服务器端将iso-8859-1编码转为utf-8编码 2.在客户端进行两次encodeURI,在服务器端进行一次转换。 第2种方法能解决问题的原因: 进行两次转换后,在第一次getparameter方法中进行第一次解码,因为解出来的是英文(第一次encode之后的结果),所以不会出问题;第二次使用URLDecoder的decode方法,所以能正常解决这个问题。需要注意的是,在de...
方法一:加If-Modified-Since头xmlhttp多次调用时它却总是显示缓存页面, 尝试在 php 或 asp 中加入相应的http头明确不要缓存, 也没什么效果!! 现在终于找到一个办法啦,就是在 xmlhttp.open 之后发送一个If-Modified-Since头即可, 代码如下xmlhttp.setRequestHeader(If-Modified-Since, 0);xmlHttp.onreadystatechange = stateChanged; xmlHttp.open("GET", url, true); xmlHttp.setRequestHeader(If-Modifie...
在使用XMLHttpRequest中有没有遇到过,第一次使用是好的,刷新一下就不行了,清空一下缓存再刷新又好了。 这是在使用XMLHttpRequest中常遇到的一个问题,在有的时候XMLHttpRequest请求的结果会缓存在同一个URL中,如果你请求之后的响应不同,就会产生一些莫名其妙的问题,当然也包括文章一开始那个呵呵。 解决方法:知道了原理就简单了,也就是每次请求的URL不同,让它每次都去服务器端请求,而不是使用缓存。下面有两种自己常用的...
解决window.open打开的页面会保存缓存的问题。 在页面的head标签中加入以下代码 代码如下:
在for循环中是否需要缓存length值,相信很多程序猿们都纠结过此问题,下面就这一问题的分析请看下文: 在JS性能优化中,有一个常见的小优化,即// 不缓存 for (var i = 0; i 那么,我们就应该摒弃这种写法吗?不是的,还有另外一种情况,必须使用这种写法。 请看例子:代码如下: var divs = document.getElementsByTagName("div"), i, div ; for( i=0; i<divs.length; i++ ){div = document.createElement("div");document.body.ap...
做东东时都是把图片在服务器的地址存放在数据库里面,然后到浏览器中显示,但是后来发现了两个问题。 第一:为了安全起见,js是无法读取本地的图片的,不然你写一个js,岂不是可以获取任何人电脑里面的文件了。 第二:图片存在的是在服务器的硬盘上面,而不是在客户的硬盘里面,所以也是取不到的 后来在网上找方法,找的方法,都是各种转换二进制到xml中,的各种高大上的答案,然后本人又实在太懒了,就自己想了一个 方法,就是利用...
下面通过文字说明给大家详解Nginx上传文件全部缓存解决方案。 因为应用服务器(Jetty)里面实现了上传时写了进度条。经过缓存。就没法读取到进度了。此外,在Nginx处缓存文件,也降低了传输效率。 nginx采用1.5.6。 后端采用nodejs+formidable的方式接受上传文件,本问题的对应与采用什么样的后端没太大关系,这里只是交代一下。 问题: 在前端页面上将文件上传,nginx没有将每一块收到的文件数据块转发给后端,而是全部缓存了下来...
如果能用字面量创建正则就最好不过,显然有时我们不得不使用new RegExp()这种大消耗的创建方法,比如语法高亮与排版就大量用到正则表达式,要用到的patten越多,需要的时间就越长,火狐好像是12秒就发出警告,IE就直接假死。这时我们就需要利用组存大法要提高我们程序的性能了。通常摆在我们眼前的如下两种选择来作为我们的容器,数组或对象。我这里选择前者,前者更轻量一点。下面我们就hasClass函数作性能改进。 原来的写法: 代...
如下: 1、在你引用JS文件的地方加上,如下: 代码如下: //09年08月14日修改 var now=new Date(); var number = now.getYear().toString()+now.getMonth().toString()+now.getDate().toString()+now.getHours().toString()+now.getMinutes().toString()+now.getSeconds().toString(); document.write("\"); //alert("\");//测试 类似这种形式:js/YearReportLuRu.js?20100408154456,这样浏览器就会以为每次引用的js文件都是不同...
举个例子 代码如下: var flower= function(){ var t=0,i=0; for(;i<5000000;i++){ t++; } return t; } flower 返回t的值 假设这个函数需要花费 2-3秒 。 通过 Memoization 函数,再次查找相同的值时,直接获取事先缓存好的 value,立刻返回; Memoization 函数 代码如下: var Memoize = function(fn, cache, refetch, obj){ cache = cache || {};//用来缓存结果 return function(){ var k = arguments[1] ? Array.prototype.join....
相信每一个开发者都知道缓存的重要性。从头至尾有缓存的后台(memcached,xcache等。) 来减轻db的压力。对内容分发网络(CDN)缓存中希望你的浏览器缓存那些不止一次的加载资源。当然, 有客户端缓存,所以你不要重复昂贵的操作(即使是算法或大量的运算)。 这是介绍的是一个不错的javascript的方面的客户端解决方案,可选配支持HTML5本地存储器. Starting Simple 代码如下: function CacheProvider() { // values will be stored here ...
代码如下:var paras="ajaxFlag=getMarkerIDs"; var myAjax=new Ajax.Request( "AddInfoHandler.ashx", {method:get,parameters:paras,onComplete:showGetMarkerIDsResponse} );因为我有一个切换数据库的操作,第一次进数据库A的时候,列表加载正确,点击结点(ajax)地图显示A数据,但点击ie后退再进入数据库B的treeview,列表加载正确(加载列表不是ajax), 点击结点地图显示的数据却还是A的数据(ajax),我在AddInfoHandler.as...
代码如下: var DataCache = function(){ if(!(this instanceof DataCache)){ return new DataCache(); } this.id = 0; this.caches = {}; }; DataCache.prototype = { add : function(val){ val = val || null; key = "dc_" + this.id; this.caches[key] = val; return key; }, remove : function(key){ delete this.caches[key]; }, get : function(key){ return this.caches[key]; }, set : function(key,val){ this.caches[key]...
用一句代码即可搞定: 代码如下: document.execCommand("BackgroundImageCache", false, true); 当然为了其它浏览器上能正常通过,需要做下判断后调用,才更安全: 代码如下: if(Browser.isIE6){ try{ document.execCommand("BackgroundImageCache", false, true); } catch(e1){} } 平台检测代码可以这样写,摘自Ext源码: 代码如下: var Browser = {}; try{ (function(){ var idSeed = 0, ua = navigator.userAgent.toLowerC...
Pixy方法受到IE的cache bug影响会闪烁。其实并没有说清楚这个问题,但其实该bug是有条件的,即IE的cache设置为Every visit to the page,而不是默认的Automatically。基本上,只有开发者才会把cache设置为每次访问检查更新,所以这个bug其实不会影响真正的用户 (根据在winxpsp2的ie6下测试,虽然可能仍然调用了一次网络存取的api,但是并没有发生实际的请求,症状就是鼠标有极短时间的抖动,但是图像 不会闪烁)。此外有人发现了一...