实例:尽可能写友好的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工具_Form 封装
Aug 21 Javascript
一个收集图片的bookmarlet(js 刷新页面中的图片)
May 27 Javascript
基于jQuery试卷自动排版系统
Jul 18 Javascript
javascript动态添加样式(行内式/嵌入式/外链式等规则)
Jun 24 Javascript
鼠标拖动实现DIV排序示例代码
Oct 14 Javascript
jQuery实现移动端滑块拖动选择数字效果
Dec 24 Javascript
利用Vue.js指令实现全选功能
Sep 08 Javascript
基于Vue2.0的分页组件
Mar 16 Javascript
JavaScript实现前端分页控件
Apr 19 Javascript
JS实现异步上传压缩图片
Apr 22 Javascript
Vue项目中跨域问题解决方案
Jun 05 Javascript
javascriptvoid(0)含义以及与&quot;#&quot;的区别讲解
Jan 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
DOMXML函数笔记
2006/10/09 PHP
PHP的fsockopen、pfsockopen函数被主机商禁用的解决办法
2014/07/08 PHP
php实现插入排序
2015/03/29 PHP
thinkphp微信开发(消息加密解密)
2015/12/02 PHP
WordPress中获取指定分类及其子分类下的文章数目
2015/12/31 PHP
Yii配置与使用memcached缓存的方法
2016/07/13 PHP
如何通过View::first使用Laravel Blade的动态模板详解
2017/09/21 PHP
php curl获取https页面内容,不直接输出返回结果的设置方法
2019/01/15 PHP
基于jQuery的日期选择控件
2009/10/27 Javascript
使用jquery与图片美化checkbox和radio控件的代码(打包下载)
2010/11/11 Javascript
mailto的使用技巧分享
2012/12/21 Javascript
基于jquery实现的文字向上跑动类似跑马灯的效果
2014/06/17 Javascript
javascript 实现 原路返回
2015/01/21 Javascript
JavaScript实现标题栏文字轮播效果代码
2015/10/24 Javascript
DIV随滚动条滚动而滚动的实现代码【推荐】
2016/04/12 Javascript
JS原型对象的创建方法详解
2016/06/16 Javascript
Bootstrap modal 多弹窗之叠加显示不出弹窗问题的解决方案
2017/02/23 Javascript
Vue.js仿Metronic高级表格(二)数据渲染
2017/04/19 Javascript
vue父组件通过props如何向子组件传递方法详解
2017/08/16 Javascript
JavaScript使用atan2来绘制箭头和曲线的实例
2017/09/14 Javascript
ionic3+Angular4实现接口请求及本地json文件读取示例
2017/10/11 Javascript
可能被忽略的一些JavaScript数组方法细节
2019/02/28 Javascript
vue实现淘宝购物车功能
2020/04/20 Javascript
Python单元测试框架unittest使用方法讲解
2015/04/13 Python
python3.0 模拟用户登录,三次错误锁定的实例
2017/11/02 Python
Python编写Windows Service服务程序
2018/01/04 Python
python的pandas工具包,保存.csv文件时不要表头的实例
2018/06/14 Python
解决django前后端分离csrf验证的问题
2019/02/03 Python
解决使用Pandas 读取超过65536行的Excel文件问题
2020/11/10 Python
详解通过变换矩阵实现canvas的缩放功能
2019/01/14 HTML / CSS
html5 div布局与table布局详解
2016/11/16 HTML / CSS
领导调研接待方案
2014/02/27 职场文书
煤矿班组长竞聘书
2014/03/31 职场文书
入党思想汇报怎么写
2014/04/03 职场文书
入党积极分子自我批评思想汇报
2014/10/10 职场文书
2015年幼儿园个人工作总结
2015/04/25 职场文书