实例:尽可能写友好的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 相关文章推荐
使用新的消息弹出框blackbirdjs
Oct 16 Javascript
JavaScript几种形式的树结构菜单
May 10 Javascript
js 字符串转化成数字的代码
Jun 29 Javascript
Bootstrap中表单控件状态(验证状态)
Aug 04 Javascript
js实现点击每个li节点,都弹出其文本值及修改
Dec 15 Javascript
使用ES6语法重构React代码详解
May 09 Javascript
解决Linux无法正常安装与卸载Node.js的方法
Jan 19 Javascript
JavaScript ES6常用基础知识总结
Feb 09 Javascript
webpack + vue 打包生成公共配置文件(域名) 方便动态修改
Aug 29 Javascript
微信小程序如何实现在线客服功能
Oct 16 Javascript
antd table按表格里的日期去排序操作
Nov 17 Javascript
vue backtop组件的实现完整代码
Apr 07 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
回答PHPCHINA上的几个问题:URL映射
2007/02/14 PHP
discuz7 phpMysql操作类
2009/06/21 PHP
ThinkPHP项目分组配置方法分析
2016/03/23 PHP
php微信公众平台开发(一) 配置接口
2016/12/06 PHP
ThinkPHP使用getlist方法实现数据搜索功能示例
2017/05/08 PHP
延时重复执行函数 lLoopRun.js
2007/05/08 Javascript
javascript 获取表单file全路径
2009/12/31 Javascript
3种js实现string的substring方法
2015/11/09 Javascript
解决JS组件bootstrap table分页实现过程中遇到的问题
2016/04/21 Javascript
AngularJS入门教程之更多模板详解
2016/08/19 Javascript
JS树形菜单组件Bootstrap TreeView使用方法详解
2016/12/21 Javascript
node.js + socket.io 实现点对点随机匹配聊天
2017/06/30 Javascript
Vue2 Vue-cli中使用Typescript的配置详解
2017/07/24 Javascript
JS实现登录页密码的显示和隐藏功能
2017/12/06 Javascript
Js代码中的span拼接问题解决
2019/11/22 Javascript
Python中random模块用法实例分析
2015/05/19 Python
python实现xlsx文件分析详解
2018/01/02 Python
python实现百万答题自动百度搜索答案
2018/01/16 Python
python构建深度神经网络(DNN)
2018/03/10 Python
python使用minimax算法实现五子棋
2019/07/29 Python
Python3.7 基于 pycryptodome 的AES加密解密、RSA加密解密、加签验签
2019/12/04 Python
Python基于数列实现购物车程序过程详解
2020/06/09 Python
华为旗下电子商务平台:华为商城
2016/08/06 全球购物
Hotels.com拉丁美洲:从豪华酒店到经济型酒店的预定优惠和折扣
2019/12/09 全球购物
卫校护理专业毕业生求职信
2013/11/26 职场文书
业务员岗位职责范本
2013/12/15 职场文书
股份合作协议书范本
2014/04/14 职场文书
《郑和远航》教学反思
2014/04/16 职场文书
第二课堂活动总结
2014/05/07 职场文书
禁毒宣传标语
2014/06/19 职场文书
向雷锋同志学习倡议书
2015/04/27 职场文书
Vue3.0中Ref与Reactive的区别示例详析
2021/07/07 Vue.js
警用民用对讲机找不同
2022/02/18 无线电
python疲劳驾驶困倦低头检测功能的实现
2022/04/04 Python
vue实现书本翻页动画效果实例详解
2022/04/08 Vue.js
NoSQL优缺点与MongoDB数据库简介
2022/06/05 MongoDB