2009-10-10 17:36
如题,在客户端用脚本获取服务的的时间:
var xmlHttp=false;
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e2) {
xmlHttp = false;
}
}
if (!xmlHttp && typeof XMLHttpRequest != 'undefined') {
xmlHttp = new XMLHttpRequest();
}
xmlHttp.open("HEAD", ".", false);
xmlHttp.send(null);
var currDate=new Date(xml |
2009-09-16 16:34
一.执行效率
1. DOM
1.1 使用DocumentFragment优化多次append
说明:添加多个dom元素时,先将元素append到DocumentFragment中,最后统一将DocumentFragment添加到页面。
该做法可以减少页面渲染dom元素的次数。经IE和Fx下测试,在append1000个元素时,效率能提高10%-30%,Fx下提升较为明显。
服用前:
for (var i = 0; i < 1000; i++) {
var el = document.createElement('p');
el.innerHTML = i;
document.body.appendChild(el);
}
服用后:
var frag = document.creat |
2009-09-16 16:32
作为一名网站开发WEB前端工程师,对自己开发的网站项目应该尽可能地对其性能进行优化,现在互联网上搜索到的网站性能优化多是翻译转载自Yahoo14条或34条。Yahoo的优化建议关注在大的方面,下面,W3C Group为大家呈现WEB前端开发高性能优化部分之JavaScript的优化细节!
一、避免出现脚本失控
不论什么脚本,在任何时间、任何浏览器上执行,都不应该超过100毫秒。如果实际执行的时间长于这个底限,一定要将进程分解成若干更小的代码段。
脚本失控基本上有以下四个方面的原因:
1. 在循环中执行 |
2009-09-10 10:47
在ie6中,min/max-width/height属性不支持,这个可以由脚本来支持,如:minmax.js(这个有时候会出些莫名其妙的问题,需要全局渲染,会在每个标签上添加一个属性)、jQMinMax.js等等。
后来在ie7/8中,改善了这一问题,但是貌似还有点问题:用dw新建页面的时候,如果选择的是“xhtml1-transitional.dtd”类型,页面代码最前面都会有行:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
声明文档类 |
2009-09-08 11:01
偶然在网上逛博,发现了cssText.
以前我对标签设置样式的时候都是直接设置,如:
var obj = document.getElementById('test');
obj.style.color="FF0000";
obj.style.marginTop="50px";
obj.style.fontSize="14px";
//不建议这样写,尽量避免页面reflow.
在比较多的情况下,也会用一个函数:
function setStyle(ele,styles){
for(var i in styles){
ele.style[i] = styles[i];
}
}
以这种:
setStyle(obj,{
display: |
2009-08-20 11:47
遇到一个问题,如题。
当时一直都搞不明白为什么脚本会影响GIF动画,只让它显示一帧,貌似在IE6中什么问题都有可能。
即:在ie6中,如果在链接中使用javascript伪协议,如:<a href="javascript:myfun();">ddd</a>,点击之后会导致整个页面上的gif动画静止。
大部分人使用伪协议是因为点击链接的时候页面不会跳转。
办法:
把<a href="javascript:myfun();">ddd</a>
改成
<a href=“#" onclick="myfun();return false">d |
2009-07-28 15:10
废话少说,如题问题,safari不支持load,但是支持XMLHttpRequest,所以:
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
var xmlLoadutil = {};
xmlLoadutil.loadXml = function(url) {
var xmlDoc, xmlhttp = null;
if (window.ActiveXObject) {
try {
xmlhttp = new ActiveXObject("Msxml2.XML |
2009-07-28 14:56
近几天最这个脚本再次修改了下,用法仍然是一样。修改的内如如下:
1、优化了下整体的结构,更利于阅读以及修改。
2、修复了下弹出框在FF下的一个bug。
3、增加了一个javascript cg函数,可以快速的回收内存。
4、在弹出iframe方面,可以直接弹出类似cgi形式的链接。
本来是用OOP来写的,但是发觉那样是增加使用门槛,所以还是采用简单的封装形式。
如果需要cookie的,可以自己添加下。
源代码:
var showDialog = (function(){
var iframebg=null,objOverlay=null,timeInterval=null,_b |
2009-07-27 15:05
最昂贵的Javascript代码缘起:
前一段时间,Opera 浏览器公司需要越来越多的服务器。本身公司预见到 Opera Mini, Opera Link, Opera Turbo 会带来爆炸性增长,所以要添置 N 台服务器,减缓服务器压力。(事实上 Opera 确实迎来了爆炸式增长,可以参见每月公布的全球移动互联网报告。)
由于这些服务都是吃服务器的,Opera Mini 服务器要为全球几千万手机用户省流量加速,Opera Turbo 则负责电脑全网加速,Opera Link 频繁同步保证用户数千实时更新。所以需要添置的服务器不是几台的数量级,管理 |
2009-07-27 10:20
情景:
在自适应页面中,我们通常用百分比来设置标签的宽度,但是当我们偶然把百分比用在textarea上的时候,在ie6里面就会发现一个问题,当我们在textarea输入数据的时,文本域的宽度会变大,如:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; char |
|
|
|