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可能会伪造,而且版本判断繁琐,还有不稳定.
随机推荐
- 用JSP生成静态页面
- ColdFusionMX 编程指南 基础管理操作以及入门程
- ExtJS扩展 垂直tabLayout实现代码
- 详解Angular2中的编程对象Observable
- 将木马拒之门外 设置电脑防止黑客入侵的技巧
- Java解压zip文件的关键代码
- 用Python实现一个简单的多线程TCP服务器的教程
- JavaScript实现事件的中断传播和行为阻止方法示例
- Bootstrap选项卡动态切换效果
- NET Core TagHelper实现分页标签
- android教程之service使用方法示例详解
- js左右弹性滚动对联广告代码分享
- 用js实现键盘方向键翻页功能的代码
- JavaScript原型及原型链终极详解
- ajax中文乱码问题解决方案
- 209个透明flash背景以及使用方法详解
- JS 自动完成 AutoComplete(Ajax 查询)
- .net中前台javascript与后台c#函数相互调用问题
- PHP 无限级分类
- 如何判断软件程序是否联网 联网状态提示信息Android实现