实例:尽可能写友好的Javascript代码


Posted in Javascript onOctober 09, 2006

在Search Engine的robot搜索时,针对的type,text/html此类“文本”的友好度是最高的(现阶段text/xml除外),而text/javascript此类的友好度不理想,如果robot还要判断DHTML代码的话,那这个复杂度也是较高,而且划不来,因此,在DHTML编程时,如果要提升代码的友好度。采用的方法,较好的方法是“尽可能是把DHTML的代码简化成没有HTML的代码”。这句话如何理解?

e.g: 

一个javascript menu。 
方法一、采用常规的编程方法:  
<script type="text/javascript"> 
var navi_menu = neverDHTMLmenu(); 
/* addItem method 
 * @ pid  
 * @ id 
 * @ text 
 * @ href 
 */ 
navi_menu.addItem("0","1","home","http://www.never-online.net"); 
navi_menu.addItem("0","2","blog","http://blog.never-online.net"); 
navi_menu.addItem("0","3","music","http://www.never-online.net/music"); 
navi_menu.init("navigator_Container"); 
</script>

二、采用对Search Engine较友好的编程方法 
<script type="text/javascript"> 
onload = function() { 
  var config = { 
    container: document.getElementById("navigator_Container"); 
    // and more configuration code 
  } 
  var navi_menu = new neverCssDHTMLMenu(config); 
  navi_menu.init(); 
</script> 

<div id="navigator_Container" class="navigator_menu"> 
  <ul> 
    <li><a href="http://www.never-online.net">home</a></li> 
    <li><a href="http://blog.never-online.net">blog</a></li> 
    <li><a href="http://www.never-online.net/music">music</a></li> 
    <!-- more... --> 
  </ul> 
<div>

从方法一和方法二来比较,方法一把一些HTML封装到了neverDHTMLmenu()里,但这样做并没有实际的好处,虽然我们依然可以把CSS给到这个类里。
方法二中可以看到有很多好处,比如,可以将view与program分离,可以实现客户端的MVC。换个角度说,可以提高开发效率。

可能有些朋友会问,除了menu,还有哪些程序可以按上述的方法分离呢?
上面也提到了,一般与页面交互较多的,会产生大量的HTML的,会影响Search Engine的robot的,都可以采用这种方法,当然了,这些只是讨论对Search Engine的友好度,所以,任何代码都必须由实际情况而定。

也或者有朋友问,这样为何会提高开发效率?
比如,美工做好模板后,(假设此美工会一些相关的HTML编写)那么按照xhtml标准,(如上例如示)
假设我要把原本的home改成Default page,那么美工得和程序员沟通,说要改这个menu的字,沟通时间在开发中也会多了。因此,在开发进度上,这个时间要算进去的。假设要改模板了,那么还得沟通。再或者假如原来用js生成的HTML是table做成的menu,要改版了,那么这个程序还得改写。不利于维护...

这个方法建议大家可以试试,意思主要就是JS负责业务实现,而视图则仍然交由HTML来处理。

Javascript 相关文章推荐
学习js所必须要知道的一些
Mar 07 Javascript
非阻塞动态加载javascript广告实现代码
Nov 17 Javascript
jquery.validate分组验证代码
Mar 17 Javascript
javascript的字符串按引用复制和传递,按值来比较介绍与应用
Dec 28 Javascript
ExtJS的拖拽效果示例
Dec 09 Javascript
JavaScript基础语法、dom操作树及document对象
Dec 02 Javascript
JS获取时间的方法
Jan 21 Javascript
js实现tab切换效果实例
Sep 16 Javascript
Jquery实现的简单轮播效果【附实例】
Apr 19 Javascript
JS 中document.write()的用法和清空的原因浅析
Dec 04 Javascript
webpack多入口文件页面打包配置详解
Jan 09 Javascript
vue中el-upload上传图片到七牛的示例代码
Oct 19 Javascript
splice slice区别
Oct 09 #Javascript
获取DOM对象的几种扩展及简写
Oct 09 #Javascript
js几个不错的函数 $$()
Oct 09 #Javascript
使用Javascript和DOM Interfaces来处理HTML
Oct 09 #Javascript
激活 ActiveX 控件
Oct 09 #Javascript
自动更新作用
Oct 08 #Javascript
许愿墙中用到的函数
Oct 07 #Javascript
You might like
php下连接ftp实现文件的上传、下载、删除文件实例代码
2010/06/03 PHP
php数字运算验证码的实现代码
2015/07/30 PHP
使用PHP下载CSS文件中的所有图片【几行代码即可实现】
2016/12/14 PHP
PHP全局使用Laravel辅助函数dd
2019/12/26 PHP
JavaScript 类似flash效果的立体图片浏览器
2010/02/08 Javascript
jQuery插件开发全解析
2012/10/10 Javascript
节点的插入之append()和appendTo()的用法介绍
2014/01/13 Javascript
JS实现的一个简单的Autocomplete自动完成例子
2014/04/16 Javascript
原生JavaScript实现Ajax的方法
2016/04/07 Javascript
jQuery实现贪吃蛇小游戏(附源码下载)
2017/03/04 Javascript
vue中eventbus被多次触发以及踩过的坑
2017/12/02 Javascript
JavaScript实现的贝塞尔曲线算法简单示例
2018/01/30 Javascript
AngularJS日期格式化常见操作实例分析
2018/05/17 Javascript
vue-router传递参数的几种方式实例详解
2018/11/13 Javascript
前端Vue项目详解--初始化及导航栏
2019/06/24 Javascript
基于vue-cli3+typescript的tsx开发模板搭建过程分享
2020/02/28 Javascript
Python中实现两个字典(dict)合并的方法
2014/09/23 Python
使用Python写CUDA程序的方法
2017/03/27 Python
Python数据可视化教程之Matplotlib实现各种图表实例
2019/01/13 Python
Python使用修饰器进行异常日志记录操作示例
2019/03/19 Python
python设置环境变量的作用和实例
2019/07/09 Python
opencv 获取rtsp流媒体视频的实现方法
2019/08/23 Python
用Python实现校园通知更新提醒功能
2019/11/23 Python
Python搭建Keras CNN模型破解网站验证码的实现
2020/04/07 Python
python中的时区问题
2021/01/14 Python
python 利用matplotlib在3D空间中绘制平面的案例
2021/02/06 Python
安全资料员岗位职责
2013/12/14 职场文书
cf收人广告词大全
2014/03/14 职场文书
某某同志考察材料
2014/05/28 职场文书
环保志愿者活动方案
2014/08/14 职场文书
2014年国庆节演讲稿精选范文1500字
2014/09/25 职场文书
群众路线查摆问题整改措施
2014/10/10 职场文书
任命书格式范文
2015/09/22 职场文书
大学文艺委员竞选稿
2015/11/19 职场文书
java设计模式--建造者模式详解
2021/07/21 Java/Android
Python 类,对象,数据分类,函数参数传递详解
2021/09/25 Python