- 浏览: 104248 次
- 性别:
- 来自: 北京
-
最新评论
-
xwpxcom:
Springmvc学习笔记一(maven项目创建与配置) -
leaow567:
表达不严谨“用户自定义的ClassLoader有ExtClas ...
openfire源码解读第一节----ClassLoader的认识与理解 -
leaow567:
顶起!一起学习
openfire源码解读第一节----ClassLoader的认识与理解 -
xs.cctv:
信科
Springmvc学习笔记一(maven项目创建与配置) -
ywbrj042:
我们也在用这个,也在看openfire的源代码。以后可以一起交 ...
openfire源码解读第一节----ClassLoader的认识与理解
文章列表
先给出函数。
var addSheet =
function(){
var doc,cssCode;
if(arguments.length == 1){
doc =
document;
cssCode = arguments[0]
}else if(arguments.length ==
2){
doc = arguments[0];
cssCode = arguments[1];
}else{
alert("addSheet函数最多接受两个参数!");
}
...
通常我们需要对函数进行优化,一般的做法是开始的时候获得时间,结束的时候再获得一次时间,两次时间相减就能到到花费的时间。而函数运行速度之快,基本上都是毫秒级的。下面给出的函数就是就此准备的。
//
时间转为时间戳(毫秒)
function time2stamp(){
var d = new Date();
return
Date.parse(d)+d.getMilliseconds();
}
用法:
var t1 =
time2stamp();
// 比较各游览器的DOM运行速度。
var divs =
document.getEleme ...
如果能用字面量创建正则就最好不过,显然有时我们不得不使用new
RegExp()这种大消耗的创建方法,比如语法高亮与排版就大量用到正则表达式,要用到的patten越多,需要的时间就越长,火狐好像是12秒就发出警告,IE就直接假死 ...
一般而言,如果脚本很长,我们把它们放到一个JS文件中,然后生成一个script元素并把它加入DOM树,把src设置为JS文件的地址即可。但对于很自短的脚本,如果我们又不想用new
Function与eval呢?这里还有一办法,利用script元素的一个少为人知的属性text,非标准属性,但所有主流浏览器都支持。有点像
innerHTML,但innerHTML只能把字符串变成各种节点,但不能解析脚本。看下面的例子:
var script =
document.createElement('script');
script.type =
'text/javascript';
...
1
js-test-driver
The goal of JsTestDriver is to build a Java
Script
test runner which:
1. easily integrates with continuous builds systems
and
2. allows running tests on multiple browsers quickly to ease TDD style
development.
官方地址:http://code.google.com/p/js-test-driver/
2 ...
jQuery的makeArray有其局限性(1.3.4还有bug),我自己实现了一个,不过涉及N多辅助方法。
var dom =
{},
_toString = Object.prototype.toString,
_slice =
Array.prototype.slice;
dom.is = function(obj,type) {
return
_toString.call(obj).match(/^\[object\s(.*)\]$/)[1] === type;
}
dom.isArray
= function (obj) {
return dom.i ...
纵观各大类库的实现,一开始基本都是定义一个全局变量,然后对它进行扩展。如Prototype.js的Prototype,mootools的
Native,Base2的Base,Ext的Ext,JQuery的JQuery,YUI的YUI,dojo的dojo,MochiKit的
MochiKit等等。从全局变量的污染程度来看,分为两大类,Prototype,mootools与Base2归一类。Prototype的哲学是对
JS原生对象进行扩展。早些年,Ptototype差点成为事实的标准,因此基本没有考虑到与其他库的共存问题
。基于Prototype,也发展
出诸如
script. ...
模仿jQuery,设计了一个缓存系统。像jQuery.data这样的东西,Prototype与mootools也有,目的都是用来辅助事件系统,用来缓存其中生成的数据,而非缓存普通函数上次计算的结果。Prototype利用了它的Hash类,mootools没细看,它内部好像用来缓存
uuid。一个共识是,为页面用到的元素设置uuid非常有用,要查找元素时,可以避免重复查找,也可以用于与事件回调函数相绑定。由于uuid目前只有
IE支持,它叫做uniqueID,格式为ms__id\d+,后面的数字也有名堂,叫做uniqueNumber。jQuery那个算是
uniqueNumber吧,而 ...
由于后台模板系统的强大,如rails的erb,javascript的模板系统一直处于被打压状态,但又由于后台的技术发展
过快,日新月异,以及
Ajax应用的普及,javascript还是有一藉之地的。如我们要从后台返回一个HTML片断,但事实上我们永远只能返回文本(responseText)或responseXML,如果你得到是json,其实后台已稍稍调用javascript把它eval成json。
好了,既然我们知道它有用武之处,那么这模板系统的规模应多大呢?或者说,它应该有什么功能呢?问题
很简单,我们看一下那些后台模板系统就知了。后台模板发展了这么多年,非常成熟了。因此我们做的问 ...
一般来说,我们判断 iframe 是否加载完成其实与 判断 Java
Script
文件是否加载完成 采用的方法很类似:
var iframe = document.createElement("iframe");
iframe.src = "http://www.planabc.net";
if (!/*@cc_on!@*/0) { //if not IE
ifram ...
在 Java
Script 中,使用 var ORain = {} 的形式可以模拟一个名称为
ORain 的命名空间。在实际应用开发中,我们可能会根据功能划分将 JavaScript 代码写到多个 JS 文件中,比如说用于验证的为
check.js,用于界面的为 ui.js,但是我们想把这些文件中都统一到同一个命名空间中,以便于管理
以及解决与外部引入的库产生名称冲突的问题
,如
ORain.Check.notNull()、ORain.UI.tableSort(),这里要引入的是名称为 ORain
的顶层命名空间,该怎么做呢?
如果我们在每个 JS 文件中,都写 var ...
Html代码部分
1.要有一个带id的样式表链接,我们要通过操作这个链接来调用不同的href。
<link href="css/main0.css" rel="stylesheet" type="text/css" id="cssfile"
/>
2.皮肤选择按钮(后台为每个li添加onclick事件,触发换肤功能)
<ul id="skin">
<li id="skin_0" t ...
在使用一些 Java
script
框架时,或许会看到类似的代码
var MyClass = new Class({
initialize:
function(param, ...) {
this.param =
param;
...
},
func1: function(...)
{
...
...
利用js来动态创建表格有两种格式,appendChild()和insertRow、insertCell()。两种方式其实差不多,但第一种有可能在IE上有问题
,所以推荐大家使用第二种了,直接说吧。
1、inserRow()和insertCell()函数
insertRow()函数可以带参数,形式如 ...
1. 总是使用 ‘var’
在Java
Script中,变量不是全局范围的就是函数范围的,使用”var”关键词将是保持变量简洁明了的关键。当声明一个或者是全局或者是函数级(function-level)的变量,需总是前置”var”关键词,下面的例子将强调不这样做潜在的问题
。
不使用 Var 造成的问题
var i=0; // This is good - creates a global variable
function test() {
for (i=0; i<10; i++) {
alert("Hello World!& ...