Welcome 微信登录

首页 / 脚本样式 / JavaScript

在多个页面使用同一个HTML片段的代码

在多个页面使用同一个HTML片段的代码

问题描述 有一个比较复杂的HTML片段(A),如果把这个HTML片段嵌入到其他页面中(B,C,D....)。 问题的关键是在HTML片段中有大量的JavaScript逻辑需要处理,比如说分页,点击事件响应等。 对于这个问题,我们用一个简单的例子来说明: “页面上有一个按钮,点击此按钮引入一个HTML片段,此HTML片段中有分页按钮。” 1. 使用IFrame 主页面,点击一个按钮向页面引入一个IFrame: 复制代码 代码如下: <script ty...
判断用户的在线状态 onbeforeunload事件

判断用户的在线状态 onbeforeunload事件

获得用户登陆状态不用说了,判断离开的话就有一点问题了,如果说用户都是按照设计者的规定触发退出事件离开的话那就没什么难度了,但是用户的离开方式多种多样,怎么在用户非法离开的时候即时的判断离开呢?最常见的非法离开就是关闭浏览器了。 复制代码 代码如下: <BODY onbeforeunload="body_onUnload()"> <script> window.onbeforeunload = function() { if (win...
js定义对象或数组直接量时各浏览器对多余逗号的处理(json)

js定义对象或数组直接量时各浏览器对多余逗号的处理(json)

1、js引擎在代码载入时进行语法分析,如果js写的不规范则语法分析通不过。这时候的错误称为语法错误 2、语法分析通过了,js引擎会执行代码。执行期间发生的错误称为运行错误 不同引擎处理这2种错误的提示不太一样。如下: 复制代码 代码如下: var p = {name:"Jack",age:33,};//注意33后有个逗号 p.toString = function() {return "姓名:" +this.name + ",年龄:" + this.age...
Array的push与unshift方法性能比较分析

Array的push与unshift方法性能比较分析

从原理就可以知道,unshift的效率是较低的。原因是,它每添加一个元素,都要把现有元素往下移一个位置。但到底效率差异有多大呢?下面来测试一下。 测试环境的主要硬件:CPU T7100(1.8G);内存4G DDR2 667;硬盘5400转。主要软件:操作系统为Windows 7;浏览器为Firefox 3.6.9。测试代码: 复制代码 代码如下: var arr = [ ], s = +new Date; // push性能测试 for (var i =...
再论Javascript下字符串连接的性能

再论Javascript下字符串连接的性能

1 如何进行字符串连接? 首先让我们来回顾一下字符串连接的两种常用方法: 1.1 使用字符串连接运算符 常用的语言(如Java、C#、PHP等)都有字符串连接运算符,Javascript也不例外,代码示例: 复制代码 代码如下: var str = ""; str = str + "a"; 1.2 使用数组 在常用的语言中,字符串连接运算的性能普遍不高,为此在C#中就专门提供了StringBuilder(Java中提供了StringBuffer)用于连接...
js parseInt的陷阱分析小结

js parseInt的陷阱分析小结

复制代码 代码如下: var a = parseInt("09"), b = Number("09"); 很多人会认为a和b的值都是数字9,但实际上不是。 parseInt的主要作用是把字符串转换为整数,或者把小数转换为整数。一般情况下,我们只用到它的第一个参数。但实际上,它有两个参数: parseInt(string, radix) parseInt会根据radix指定的进制进行转换,比如: 复制代码 代码如下: alert(parseInt("10"...
js 优化次数过多的循环 考虑到性能问题

js 优化次数过多的循环 考虑到性能问题

假设要生成一千万个随机数,常规的做法如下: 复制代码 代码如下: var numbers = []; for (var i = 0; i < 10000000; i++) { numbers.push(Math.random()); } 然而,在IE下执行这段代码时,却弹出了一个窗口提示用户是否停止这段脚本。出现这种情况,首先想到的是优化循环体。但明显地,循环体很简单,没什么优化的余地。即使把循环体清空,提示仍然存在。于是,我得出了一个结论:在...
js中将具有数字属性名的对象转换为数组

js中将具有数字属性名的对象转换为数组

虽然不太常用,但我们的确可以给对象添加以数字为属性名的属性: 复制代码 代码如下: var obj = {}; obj[0] = 1; obj[1] = 2; 这个对象并不是数组类型,那有没有办法把它转换为数组类型呢?jQuery代码中采用了Array.prototype.slice把这种对象转换为数组,但我试了好几遍,就是不行: 复制代码 代码如下: var obj = {}; obj[0] = 1; obj[1] = 2; alert(Array.p...
Javascript中的函数声明与函数表达式(奇技淫巧)

Javascript中的函数声明与函数表达式(奇技淫巧)

举一个例子: ~function() { alert("hello, world."); }(); [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行] 试一下就知道这段代码的意思就是声明一个函数,然后立刻执行,因为Javascript中的变量作用域是基于函数的,所以这样可以避免变量污染,但这里的位运算符“~”乍一看让人摸不到头脑,如果去掉它再运行则会报错:SyntaxError。 在阐述为什么之前,让我们先来明确Javascript中的两...
基于jquery的地址栏射击游戏代码

基于jquery的地址栏射击游戏代码

演示地址:http://demo.jb51.net/js/2011/hunt/index.htm玩法向下看 请看地址栏上的字母 O! 你使用O来向 a射击。 使用键盘上的 左箭头 和 右箭头 移动字母O. 当O移动到 a 上时,按 空格键射击! 游戏会定时30秒时间,按ESC键重新开始。 注:请使用系统自带的IE浏览器来打开本链接。你使用O来向a射击。 使用键盘上的左箭头和右箭头移动字母O. 当O移动到a上时,按空格键射击!// // 核心代码:复制代码 ...
<< 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 >>