html页面首尾分离,性能、JavaScript与html标签分离(代码与结构和内容分离)、平稳退化...

性能

尽量减少DOM访问和标记,减少document.getElementsByTagName()之类方法的使用,把这类方法返回的值存储在变量之中。

合并脚本、样式文件、图片文件等,以便减少加载页面时的请求数量。

压缩脚本。

JavaScript与html标签分离

当我们添加动作时,会有个第一反应:

Click here

//这边是JavaScript的代码

function doSomething1(node){}

function doSomething2(node){}

但这样是不科学的。当我们需要修改一系列类似的标签,他们有着类似的方法:

Click here
Click here
Click here
Click here
Click here

如果需要把其他方法(比如doSomething2())绑定给div4和div5的onclick事件,就需要面对一些繁琐的工作。

其实我们可以这个样子:

Click here
Click here
Click here
Click here
Click here

window.οnlοad=function(){

var divs=documen.getElementById("contain").getElementsByTagName("div");

for(var i=0;i

if(divs[i].getAttribute("id").replace("div","")<=3){    //判断是否是div1~div3

divs[i].οnclick=doSomething1;

}else{

divs[i].οnclick=doSomething2;

}

}

}

至此,若还需要对html页面中的元素进行动作添加、修改、删除,在js文件中进行就可以了。

平稳退化

需求:点击上方链接,下方区域出现图片,点不同的链接出现的图片不同。

            

            

            

            

            

            

            

接下来是js代码:

window.οnlοad=function(){        //遍历ul中的li元素,事件绑定

if(!document.getElementsByTagName

||!document.getElementById

||!document.getElementById("imagegallery")){

return false;

}

var gallery=document.getElementById("imagegallery");

var links=gallery.getElementsByTagName("a");

for(var i=0;i

links[i].οnclick=function(){

return !showPic(this);

//这步很关键。便签被点击后是会使页面跳转的,除非触发onclick事件后得到false的返回

//于是,若js正常执行,则点击标签可看到图片

//若js被禁用,则点击标签会发生跳转,同样可以看到图片

}

}

}

function showPic(whichPic){

//如果展示图片的区域不存在,则页面跳转,跳到图片处

if(!document.getElementById("placeHolder"))return false;

var source=whichPic.getAttribute("href");

var placeHolder=document.getElementById("placeHolder");

placeHolder.setAttribute("src",source);

if(document.getElementById("description")){

var text=whichPic.getAttribute("title");

var description=document.getElementById("description");

description.firstChild.nodeValue=text;

}

return true;

}

无论如何,内容最重要。要保证在js被禁用的情况下,仍然可以浏览到内容。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值