javascript DOM编程艺术(检测与性能优化)
一、对象检测(是否支持js方法):只有支持了该方法才可调用
if(!getElementById || getElementsByTagName){
return false;
}
二、性能考滤
1、尽量少访问DOM和尽量减少标记:以下面代码为例
if(document.getElementsByTagName("a").length > 0){
var aLiks = document.getElementsByTagName("a");
for(var i = 0 ; i < aLiks.length; i++){ }
}
这段代码是查找DOM中的<a>元素。如果大于0,则获得<a>的个数并循环遍历。在这里两次使用了document.getElementsByTagName ,不管什么时候,只要查询DOM中的某个元素,都会搜索整个DOM树,所以这段代码多执行了一次搜索。
优化后的代码:
var aLiks = document.getElementsByTagName("a");
if(aLiks.length > 0){
for(var i = 0 ; i < aLiks .length; i++){ }
}
三、合并和放置脚本
<srcript src="js/A.js"></script>
多使用外部js引用的方式和将多个js文件合并成一个,既可以共用又可以减少加载页面时发送的请求数。
四、压缩脚本
//获取对象数组
var aLiks = document.getElementsByTagName("a");
if(aLiks.length > 0){
//循环遍历
for(var i = 0 ; i < aLiks .length; i++){ }
}
压缩后:
var aLiks = document.getElementsByTagName("a");if(aLiks.length > 0){for(var i = 0 ; i < aLiks .length; i++){}}
精简后的脚本虽然看不太懂但能减少脚本的大小。大多数情况下我们应该有两个版本的脚本,一个有格式和注释的开发版易于阅读,一个压缩的精简版放在站点上。
javascript DOM编程艺术(检测与性能优化)的更多相关文章
- JavaScript DOM编程艺术(第2版)的简单总结
介绍 JavaScript DOM编程艺术(第2版)主要讲述了 JavaScript.DOM 和 HTML5 的基础知识,着重讲述了 DOM 编程,并通过几个实例演示了具有专业水准的网页开发. 下面介 ...
- 读书笔记:JavaScript DOM 编程艺术(第二版)
读完还是能学到很多的基础知识,这里记录下,方便回顾与及时查阅. 内容也有自己的一些补充. JavaScript DOM 编程艺术(第二版) 1.JavaScript简史 JavaScript由Nets ...
- 《JavaScript DOM 编程艺术》 学习笔记
目录 <JavaScript DOM 编程艺术> 学习笔记 第一章 js简史 第二章 js语法 准备工作 语法 第三章 DOM DOM中的D DOM中的O DOM中的M 第四章 js图片库 ...
- 《JavaScript dom 编程艺术》 placeholder占位符IE8兼容办法。
在<JavaScript dom 编程艺术>第11章学来的. 相对于用JavaScript替换文本框的提示语句 <!DOCTYPE html> <html lang=&q ...
- 《javascript dom编程艺术》笔记(一)——优雅降级、向后兼容、多个函数绑定onload函数
刚刚开始自学前端,如果不对请指正:欢迎各位技术大牛指点. 开始学习<javascript dom编程艺术>,整理一下学习到的知识.今天刚刚看到第六章,记下get到的几个知识点. 优雅降级 ...
- JavaScript DOM 编程艺术·setInterval与setTimeout的动画实现解析
先贴上moveElement()函数的大纲,为了方便观看,删了部分代码,完整版粘到文章后面. function moveElement(elementID,final_x,final_y,interv ...
- JavaScript DOM编程艺术学习笔记(一)
嗯,经过了一周的时间,今天终于将<JavaScript DOM编程艺术(第2版)>这本书看完了,感觉受益匪浅,我和作者及出版社等等都不认识,无意为他们做广告,不过本书确实值得一看,也值得推 ...
- JavaScript DOM编程艺术第一章:JavaScript简史
本系列的博客是由本人在阅读<JavaScript DOM编程艺术>一书过程中做的总结.前面的偏理论部分都是书中原话,觉得有必要记录下来,方便自己翻阅,也希望能为读到本博客的人提供一些帮助, ...
- 《JavaScript DOM 编程艺术》
前几天京东买了一本书,在豆瓣上好评如潮,买下了啃一啃,书名<JavaScript DOM 编程艺术>,在好好深造一下javaScript.一边啃,一边敲.当然应该要做好笔记.一些简单的就看 ...
随机推荐
- H5学习之旅-H5的元素属性(3)
1.标签可以拥有属性,为标签提供更多的信息 2.属性以键值对的形式呈现例如:href = "www.baidu.com" 3.常用标签属性 :align对其方式 ,对齐方式,包括上 ...
- ListView中ConvertView和ViewHolder
1.概述 ListView是Android中非常常见的控件通过Adapter架起数据与界面显示的桥梁,MVC思想在其中得到了很好地体现: M:model 数据模型 添加到ListView中显示的 ...
- HashMap与HashTable面试宝典
u012233832的专栏 初生牛犊 目录视图 摘要视图 订阅 写博客,送money.送书.送C币啦 7-8月博乐推荐文章 砸BUG 得大奖 100%中奖率 微信开发学习路线高级篇上线 ...
- JQuery实战总结一 可编辑的表格
JQuery视频看完了,总结学习,记得在牛腩视频中的修改新闻类别的时候也使用了这样的可编辑的表格,使用到 了ajax控制界面不再刷新,轻松解决了类别的名称的修改的问题,直接提交到数据库,这样的方式比起 ...
- 【一天一道LeetCode】#38. Count and Say
一天一道LeetCode系列 (一)题目 The count-and-say sequence is the sequence of integers beginning as follows: 1, ...
- Lucene 学习资料
个机制的结合.关于中文的语言分析算法,大家可以在Google查关键词"wordsegment search"能找到更多相关的资料. 安装和使用 下载:http://jakarta. ...
- 用jquery+Asp.Net实现省市二级联动
页面html: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="ddlAjax. ...
- obj-c编程10:Foundation库中类的使用(1)[数字,字符串]
我们知道在mac或iphone上编程最终逃不开os x平台,你无法在windows或linux上开发纯正的apple程序.(so不要舍不得银子买mac啦)虽说linux和windows上有移植的obj ...
- 记录一下Maven整合spring,hibernate,strusts2我程序中出的bug
action类如下 package com.itheima.movenweb.action; import java.util.List; import org.apache.struts2.Serv ...
- node_acl 路径通配
最近做一个基于nodejs的权限管理,查阅了一两天,发现大致是这样的: passportjs node-oauth rbac node_acl express_acl connect-roles 需求 ...