摘要:
浏览器对js的运行时间进行了限制1、调用栈尺寸限制 目前大部分的主流浏览器的调用栈尺寸都在10000以上。超过这个尺寸就会报栈溢出的错误2、长时间脚本限制 浏览器记录一个脚本的运行时间,一旦达到这个时间就终止它,并向用户展示一个提示框。 两种方法测量脚本的运行时间: a)语句数量 IE 500万条 b)脚本的总运行时间 FF 10s,safari 5s,chrome 通用崩溃检测系统但实际当中超过100ms的脚本,就会对用户体验产生不良影响。 阅读全文
posted @ 2013-10-24 23:49
charling
阅读(929)
评论(0)
推荐(0)
摘要:
1、当页面中的图片很多时,图片的加载可能会影响一些重要数据的加载。 图片按需加载的实现思路: 1、去掉img的src属性,代替以其它自定义属性存放图片的url。 2、判断该图片是否在首屏,如果在首屏,为图片添加src属性,并将自定义属性中的图片url赋值给src。 3、当滚动滚轮时,判断图片是否进入屏幕显示区,如果进入,为图片添加src属性,并将自定义属性中的图片url赋值给src。2、非当前显示的部分,比如当用户点击之后才显示的内容,无需事先浪费性能进行相应的解析和渲染。因为用户可能不会去点击。 内容按需加载的实现思路: 1、将非当前显示的部分放入到textarea标签中,并隐藏... 阅读全文
posted @ 2013-10-24 22:00
charling
阅读(869)
评论(0)
推荐(0)
摘要:
需要了解的概念 Content-Type:用于定义用户的浏览器或相关设备如何显示将要加载的数据,或者如何处理将要加载的数据 MIME:MIME类型就是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。text/html的意思是将文件的content-type设置为text/html的形式,浏览器在获取到这种文件时会自动调用html的解析器对文件进行相应的处理。text/plain的意思是将文件设置为纯文本的形式,浏览器在获取到这种文件时并不会对其进行处理。 阅读全文
posted @ 2013-10-23 22:04
charling
阅读(57668)
评论(0)
推荐(5)
摘要:
1、项目中,接触到gzip。未压缩的文件和压缩后的文件的比例可能达到:3:1。所以,gzip是网络中文件高速传输的很好方法。2、一般js、css、html文件都会在后端进行gzip。当浏览器请求这些数据时,直接传回gzip之后的文件。3、后端可以通过一定的设置(具体不了解)来开启对哪些文件进行gizp。4、项目中对Content-Type为"text/javascript", "text/xml", "text/plain"的文件默认进行压缩。5、但遇到的需求是对json文件也进行压缩。 方法为:后端将需要压缩的json文件的Cont 阅读全文
posted @ 2013-10-23 21:56
charling
阅读(554)
评论(0)
推荐(0)
摘要:
Object.create方法是ES5才引入的方法,目前尚不能在开发中应用。使用方法示例:var person = { name : "chen", sayName : function(){ alert(this.name); }}1.var myPerson = Object.create(person);myPerson.sayName() //chen2.var myPerson = Object.create(person, { name:{ value : "liang" }});myPerson.sayName(); //liang 阅读全文
posted @ 2013-10-23 09:20
charling
阅读(3087)
评论(1)
推荐(1)
摘要:
在别人那里看到的,兼容IE8-的console.log的实现,以前没想过。if(typeof console == "undefinde"){ this.console = {log: function(msg){alert(msg);}}}这种方法在IE8-未开启调试模式的时候同样可以输出信息。不过IE8中开启调试模式是可以在控制台输出console.log信息的,所以这种方法的必要性有待验证。 阅读全文
posted @ 2013-10-23 09:10
charling
阅读(521)
评论(0)
推荐(0)
摘要:
在项目中,经常会看到为String、Array等对象添加方法的例子,这确实方面了使用。不过却存在潜在的危险。因为在现有的ES标准中没有的方法,可能会在之后的ES标准中出现。因此,如果之后在ES标准中出现了现在定义的方法,但实现方式或效果不同的话,将会陷入混乱。有一种防守型的用户,以定义getElementByClassName为例:if(!documnet.getElementByClassName){ document.getElementByClassName = function(classes){ }} 阅读全文
posted @ 2013-10-21 21:34
charling
阅读(190)
评论(0)
推荐(0)
摘要:
今天第一次看到closest方法,以前也从来没用过。该方法从元素本身开始往上查找,返回最近的匹配的祖先元素。1、closest查找开始于自身,parents开始于元素父级2、closest向上查找,知道找到一个匹配就停止查找,parents一直查找到根元素,并将匹配的元素加入集合3、closest返回的是包含零个或一个元素的jquery对象,parents返回的是包含零个或一个或多个元素的jquery对象 阅读全文
posted @ 2013-10-21 21:17
charling
阅读(6751)
评论(0)
推荐(1)
摘要:
typeof可以检测的类型有:string、number、boolean、undefined。不可以用typeof检测nulltypeof也可以用来检测function,但是在IE8及跟早的浏览器中使用typeof检测DOM节点中的方法时,返回的是object。instanceof可以检测对象是哪种类型,但是不能跨frame一种跨frame检测数组的方法是:return Object.prototype.toString.caa() === “[object Array]”,该方法在ES5引入js成为原生方法。in和hasOwnProperty都可以用来检测对象时候具有某个属性或方法。区别在于 阅读全文
posted @ 2013-10-21 09:24
charling
阅读(252)
评论(0)
推荐(0)
摘要:
项目中经常会涉及到在cms中配置数据,在js中进行操作的问题。但是什么样的数据需要抽离出来,原则是什么?以下是需要抽离的数据的例子:URL需要展现给用户的字符串重复的值设置,比如显示的数量任何可能发生变更的值 阅读全文
posted @ 2013-10-21 09:22
charling
阅读(273)
评论(0)
推荐(0)
浙公网安备 33010602011771号