尽可能写"友好"的"Javascript"代码


Posted in Javascript onJanuary 09, 2007

在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 相关文章推荐
javascript iframe编程相关代码
Dec 28 Javascript
关于jquery性能最佳实践的讨论,与求教
Mar 30 Javascript
js replace替换所有匹配的字符串
Feb 13 Javascript
jQuery下拉美化搜索表单效果代码分享
Aug 25 Javascript
7个jQuery最佳实践
Jan 12 Javascript
JS小数运算出现多为小数问题的解决方法
Jun 02 Javascript
解决bootstrap中使用modal加载kindeditor时弹出层文本框不能输入的问题
Jun 05 Javascript
Javascript实现秒表倒计时功能
Nov 17 Javascript
详解Vue项目引入CreateJS的方法(亲测可用)
May 30 Javascript
vue 实现v-for循环回来的数据动态绑定id
Nov 07 Javascript
vue中的 $slot 获取插槽的节点实例
Nov 12 Javascript
javascript设计模式 ? 职责链模式原理与用法实例分析
Apr 16 Javascript
添加到收藏夹代码(兼容几乎所有的浏览器)
Jan 09 #Javascript
Web版彷 Visual Studio 2003 颜色选择器
Jan 09 #Javascript
一个对于js this关键字的问题
Jan 09 #Javascript
JS控件autocomplete 0.11演示及下载 1月5日已更新
Jan 09 #Javascript
根据分辩率调用不同的CSS.
Jan 08 #Javascript
如何用javascript判断录入的日期是否合法
Jan 08 #Javascript
[IE&amp;FireFox兼容]JS对select操作
Jan 07 #Javascript
You might like
新闻分类录入、显示系统
2006/10/09 PHP
php smarty的预保留变量总结
2008/12/04 PHP
apache配置虚拟主机的方法详解
2013/06/17 PHP
保存到桌面、设为桌面且带图标的PHP代码
2013/11/19 PHP
php自定义hash函数实例
2015/05/05 PHP
基于ThinkPHP实现的日历功能实例详解
2017/04/15 PHP
php传值和传引用的区别点总结
2019/11/19 PHP
php的无刷新操作实现方法分析
2020/02/28 PHP
jquery ajax提交表单数据的两种方式
2009/11/24 Javascript
jQuery 打造动态下滑菜单实现说明
2010/04/15 Javascript
JS实现标签页效果(配合css)
2013/04/03 Javascript
Javascript WebSocket使用实例介绍(简明入门教程)
2014/04/16 Javascript
jquery实现页面虚拟键盘特效
2015/08/08 Javascript
js实现接收表单的值并将值拼在表单action后面的方法
2015/11/23 Javascript
全面解析Bootstrap手风琴效果
2020/04/17 Javascript
JS锚点的设置与使用方法
2016/09/05 Javascript
详解AngularJS中ng-src指令的使用
2016/09/07 Javascript
详解vue渲染从后台获取的json数据
2017/07/06 Javascript
微信小程序实现自动定位功能
2018/10/31 Javascript
vue工程全局设置ajax的等待动效的方法
2019/02/22 Javascript
koa router 多文件引入的方法示例
2019/05/22 Javascript
Vue源码分析之Vue实例初始化详解
2019/08/25 Javascript
JS array数组检测方式解析
2020/05/19 Javascript
Python实现删除Android工程中的冗余字符串
2015/01/19 Python
Python按行读取文件的简单实现方法
2016/06/22 Python
Python Numpy 数组的初始化和基本操作
2018/03/13 Python
对python程序内存泄漏调试的记录
2018/06/11 Python
python微元法计算函数曲线长度的方法
2018/11/08 Python
python requests post多层字典的方法
2018/12/27 Python
50行Python代码获取高考志愿信息的实现方法
2019/07/23 Python
python logging 日志的级别调整方式
2020/02/21 Python
Python 操作SQLite数据库的示例
2020/10/16 Python
卡骆驰德国官方网站:Crocs德国
2019/03/29 全球购物
校庆团日活动总结
2014/08/28 职场文书
大学生心理健康活动总结
2015/05/08 职场文书
Django框架之路由用法
2022/06/10 Python