尽可能写"友好"的"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 数组的方法集合
Jun 05 Javascript
IE DOM实现存在的部分问题及解决方法
Jul 25 Javascript
js跨域和ajax 跨域问题的实现思路
Sep 05 Javascript
js location.replace与location.reload的区别
Sep 08 Javascript
jQuery中ajax和post处理json的不同示例对比
Nov 02 Javascript
jquery中表单 多选框的一种巧妙写法
Sep 06 Javascript
jQuery对象与DOM对象转换方法详解
May 10 Javascript
vue.js配合$.post从后台获取数据简单demo分享
Aug 11 Javascript
Angular PWA使用的Demo示例
Jan 31 Javascript
es6函数之尾递归用法实例分析
Apr 25 Javascript
js实现无缝轮播图插件封装
Jul 31 Javascript
element-ui和vue表单(对话框)验证提示语(残留)清除操作
Sep 11 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
PHP初学者头疼问题总结
2006/07/08 PHP
基于MySQL分区性能的详细介绍
2013/05/02 PHP
探讨Smarty中如何获取数组的长度以及smarty调用php函数的详解
2013/06/20 PHP
RR vs IO BO3 第二场2.13
2021/03/10 DOTA
JS写的数字拼图小游戏代码[学习参考]
2008/10/29 Javascript
javascript concat数组累加 示例
2009/09/03 Javascript
getElementByIdx_x js自定义getElementById函数
2012/01/24 Javascript
用函数模板,写一个简单高效的 JSON 查询器的方法介绍
2013/04/17 Javascript
jQuery实现可拖动的浮动层完整代码
2013/05/27 Javascript
解析Jquery取得iframe中元素的几种方法
2013/07/04 Javascript
jQuery简单几行代码实现tab切换
2015/03/10 Javascript
JS实现的3D拖拽翻页效果代码
2015/10/31 Javascript
JS与jQuery遍历Table所有单元格内容的方法
2015/12/07 Javascript
JavaScript代码实现图片循环滚动效果
2020/03/19 Javascript
vuejs2.0运用原生js实现简单的拖拽元素功能示例
2017/02/24 Javascript
JQuery.dataTables表格插件添加跳转到指定页
2017/06/09 jQuery
原JS实现banner图的常用功能
2017/06/12 Javascript
vue实现百度搜索下拉提示功能实例
2017/06/14 Javascript
require.js中的define函数详解
2017/07/10 Javascript
详解如何webpack使用DllPlugin
2018/09/30 Javascript
原生js实现轮播图特效
2020/05/04 Javascript
Python中正则表达式的详细教程
2015/04/30 Python
Python3中使用urllib的方法详解(header,代理,超时,认证,异常处理)
2016/09/21 Python
Jupyter安装nbextensions,启动提示没有nbextensions库
2020/04/23 Python
Python Series从0开始索引的方法
2018/11/06 Python
在Python中使用Neo4j的方法
2019/03/14 Python
tensorflow 固定部分参数训练,只训练部分参数的实例
2020/01/20 Python
使用Django实现把两个模型类的数据聚合在一起
2020/03/28 Python
详解用Pytest+Allure生成漂亮的HTML图形化测试报告
2020/03/31 Python
css3中的calc函数浅析
2018/07/10 HTML / CSS
纯css3实现宠物小鸡实例代码
2018/10/08 HTML / CSS
eDreams加拿大:廉价航班、酒店和度假
2019/03/29 全球购物
商铺租赁意向书
2014/04/01 职场文书
大学生学年个人总结
2015/02/15 职场文书
解决thinkphp6(tp6)在状态码500下不报错,或者显示错误“Malformed UTF-8 characters”的问题
2021/04/01 PHP
JavaGUI模仿QQ聊天功能完整版
2021/07/04 Java/Android