实例:尽可能写友好的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 相关文章推荐
jquery 学习笔记一
Apr 07 Javascript
通过javascript的匿名函数来分析几段简单有趣的代码
Jun 29 Javascript
js 火狐下取本地路径实现思路
Apr 02 Javascript
js判断字符长度以及中英文数字等
Dec 31 Javascript
javascript中sort()的用法实例分析
Jan 30 Javascript
JQuery中属性过滤选择器用法实例分析
May 18 Javascript
js实现正则匹配中文标点符号的方法
Dec 23 Javascript
基于jQuery实现火焰灯效果导航菜单
Jan 04 Javascript
JS/jquery实现一个网页内同时调用多个倒计时的方法
Apr 27 jQuery
VUE在for循环里面根据内容值动态的加入class值的方法
Aug 12 Javascript
解决JQuery的ajax函数执行失败alert函数弹框一闪而过问题
Apr 10 jQuery
vue ant design 封装弹窗表单的使用
Jun 01 Vue.js
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 变量类型的强制转换
2009/10/23 PHP
浅析php设计模式之数据对象映射模式
2016/03/03 PHP
JS 自动安装exe程序
2008/11/30 Javascript
IE8下关于querySelectorAll()的问题
2010/05/13 Javascript
JS Jquery 遍历,筛选页面元素 自动完成(实现代码)
2013/07/08 Javascript
jQuery中$.fn的用法示例介绍
2013/11/05 Javascript
js模仿hover的具体实现代码
2013/12/30 Javascript
javascript实现鼠标点击页面 移动DIV
2016/12/02 Javascript
微信小程序 实现点击添加移除class
2017/06/12 Javascript
详解使用jest对vue项目进行单元测试
2018/09/07 Javascript
小程序实现列表删除功能
2018/10/30 Javascript
改变layer confirm弹窗按钮的颜色方法
2019/09/12 Javascript
Vue基于iview实现登录密码的显示与隐藏功能
2020/03/06 Javascript
[01:46]辉夜杯—打造中国DOTA新格局
2015/12/25 DOTA
整理Python最基本的操作字典的方法
2015/04/24 Python
Python实现模拟时钟代码推荐
2015/11/08 Python
python os.path模块常用方法实例详解
2018/09/16 Python
python查找指定文件夹下所有文件并按修改时间倒序排列的方法
2018/10/21 Python
python 实现分页显示从es中获取的数据方法
2018/12/26 Python
python运行时强制刷新缓冲区的方法
2019/01/14 Python
什么是python的id函数
2020/06/11 Python
TCP协议通讯的过程和步骤是什么
2015/10/18 面试题
什么是Web Service?
2012/07/25 面试题
军训考核自我鉴定
2014/02/13 职场文书
节约电力资源的建议书
2014/03/12 职场文书
2014年党支部学习材料
2014/05/19 职场文书
计算机网络专业自荐书
2014/06/09 职场文书
英语分层教学实施方案
2014/06/15 职场文书
作风年建设汇报材料
2014/08/14 职场文书
2014年教研室工作总结
2014/12/06 职场文书
奶茶店的创业计划书该怎么写?
2019/07/15 职场文书
导游词之黄果树瀑布
2019/09/20 职场文书
《狼王梦》读后感:可怜天下父母心
2019/11/01 职场文书
Python中requests做接口测试的方法
2021/05/30 Python
JavaScript小技巧带你提升你的代码技能
2021/09/15 Javascript
pandas中pd.groupby()的用法详解
2022/06/16 Python