js 不用重复检测浏览器提高效率
// 方式1
function addEvent(el, type, fn){
if(el.addEventListener){
el.addEventListener(type, fn, false);
}else{
el.attachEvent('on'+type, fn)
}
}
// 方式2
var addEvent = document.addEventListener ?
function(el, type, fn) {el.addEventListener(type, fn, false);} :
function(el, type, fn) {el.attachEvent('on'+type, fn)};
方式1在函数内做判断,每次给元素添加事件都需判断一次,效率相对低一些。
jQuery 1.6.1/Prototype 1.7/Mootools 1.3/tangram 1.3.6/reg.js/right.js都是采用这种分支方式。
方式2使用了两个匿名函数,仅在初始化时判断一次,后每次调用无须判断。效率相对高一些。
Ext/kissy/qwrap 采用这种分支写法。
相关推荐
-
js 不用重复检测浏览器提高效率
这里以拿 添加事件示例 复制代码 代码如下: // 方式1 function addEvent(el, type, fn){ if(el.addEventListener){ el.addEventListener(type, fn, false); }else{ el.attachEvent('on'+type, fn) } } // 方式2 var addEvent = document.addEventListener ? function(el, type, fn) {el.addEve
-
用js实现的检测浏览器和系统的函数
复制代码 代码如下: var sUserAgent = navigator.userAgent; var fAppVersion = parseFloat(navigator.appVersion); function compareVersions(sVersion1, sVersion2) { var aVersion1 = sVersion1.split("."); var aVersion2 = sVersion2.split("."); if (aVers
-
使用js检测浏览器的实现代码
在写跨浏览器的js程序中,检测浏览器是一个很重要的工作.我们不时要为不同的浏览器写分支代码.如下是一种: 复制代码 代码如下: //添加事件工具函数function addEvent(el,type,handle){ if(el.addEventListener){//for standard browses el.addEventListener(type,handle,false); }else if(el.attachEvent){//for IE
-
JavaScript高级程序设计阅读笔记(十六) javascript检测浏览器和操作系统-detect.js
检测浏览器的方式 1.对象特征检测法:判断浏览器能力的通用方法.如果更关注浏览器的能力而不在乎它的实际身份,就可以使用这种检测方法.常见的原生Ajax写法中就用这种方法来创建XMLHttpRequest: 复制代码 代码如下: IXHR: function(){ if(window.ActiveXObject){ XHR=new ActiveXObject('Microsoft.XMLHTTP'); }else if(window.XMLHttpRequest){ XHR=new XMLHttp
-
js检测浏览器版本、核心、是否移动端示例
检测浏览器版本.核心.系统和是否移动端 复制代码 代码如下: /** * check browser version * @authors K * @date 2014-04-11 14:48:39 * @version 1 */ /** * detect browser info with navigator userAgent * @return object browser info */ var browser = (function(){ var userAgent = nav
-
javascript 包裹节点 提高效率
原理基本是这样,如果传入的是字符串,那么让它们变成一个元素节点,不过这元素节点也可以有许多层,在最内层把要包裹的元素放进.把字符串变成元素节点的方法有如下几个.1,createElement,IE可以连元素属性也一起创建,但只能创建一层.2,innerHTML,不过需要对原来的字符串进行处理,IE与FF都有许多意想不到的默认行为,可以为你多加一点东西或少加一点东西.3,createContextualFragment,由于Opera的行为有点怪异,需要选中修改元素的位置.经日本人的测试,它转换字
-
javascript 检测浏览器类型和版本的代码
检测浏览器及其版本的代码 复制代码 代码如下: getBrowser : function(){ var browser = { msie: false, firefox: false, opera: false, safari: false, chrome: false, netscape: false, appname: 'unknown', version: 0 }, userAgent = window.navigator.userAgent.toLowerCase(); if ( /(
-
推荐阅读的js快速判断IE浏览器(兼容IE10与IE11)
判断是否IE浏览器用的是window.navigator.userAgent,跟踪这个信息,发现在开发环境,识别为IE10,但访问服务器则识别为IE11,但IE11的userAgent里是没有MSIE标志的,原因就是这个了. 把判断IE浏览器的方法改成如下就可以了. function isIE() { //ie? if (!!window.ActiveXObject || "ActiveXObject" in window) return true; else return false
-
MySQL中Stmt 预处理提高效率问题的小研究
复制代码 代码如下: DELIMITER $$ set @stmt = 'select userid,username from myuser where userid between ? and ?'; prepare s1 from @stmt; set @s1 = 2; set @s2 = 100; execute s1 using @s1,@s2; deallocate prepare s1; $$ DELIMITER ; 用这种形式写的查询,可以随意替换参数,给出代码的人称之为预处理,
-
JavaScript快速检测浏览器对CSS3特性的支持情况
在项目中需要快速检测浏览器是否支持某CSS3特性,比如检测是否支持"transform",然后我的布局会有两种完全不同的版式. 当然除开本文介绍的这种快速方法,还有一种更有名和更通用的方法,那就是modernizr,运行脚本之后它会在html的class上加上浏览器支持的所有特性的列表. 优点: js是可配置的,不需要的特性检测可以在配置脚本中去掉基于特性检测js库简单好用 除此之外还有一种不太好的方法,那就是判断浏览器的UA,不好的原因是UA可能会伪造,而且版本判断繁琐,还有不稳定.
随机推荐
- MySQL分区字段列有必要再单独建索引吗?
- navicat不能创建函数解决方法分享
- struts2集成javamail发邮件示例详解
- 浅析javascript的return语句
- ASP.NET中制作各种3D图表的方法
- PHP 字符串分割和比较
- PHP如何编写易读的代码
- Python守护进程用法实例分析
- 基于switch你可能不知道的一些用法
- JS简单判断函数是否存在的方法
- javascript模拟C#格式化字符串
- 看图理解 普通交互方式和Ajax交互方式区别
- shell版Nginx日志蜘蛛爬取查看脚本
- javascript删除Table中的一行的脚本代码
- 以BootStrap Tab为例写一个前端组件
- 修改服务器配置 让asp.net文件后缀名随心所欲
- 域名劫持---163.net被黑的分析
- jquery解析xml字符串示例分享
- java设计模式之适配器模式
- Android 权限(permission)整理