尽可能写"友好"的"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 相关文章推荐
window.js 主要包含了页面的一些操作
Dec 23 Javascript
js滚动条回到顶部的代码
Dec 06 Javascript
深入理解javascript原型链和继承
Sep 23 Javascript
原生JS实现LOADING效果
Mar 16 Javascript
原生Js实现简易烟花爆炸效果的方法
Mar 20 Javascript
JS基于VML技术实现的五角星礼花效果代码
Oct 26 Javascript
jQuery UI 实例讲解 - 日期选择器(Datepicker)
Sep 18 jQuery
vue中v-model的应用及使用详解
Jun 27 Javascript
ES6数组与对象的解构赋值详解
Jun 14 Javascript
解决Echarts 显示隐藏后宽度高度变小的问题
Jul 19 Javascript
手把手教你实现 Promise的使用方法
Sep 02 Javascript
js实现抽奖功能
Nov 24 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
Yii框架视图、视图布局、视图数据块操作示例
2019/10/14 PHP
脚本之家贴图转换+转贴工具用到的js代码超级推荐
2007/04/05 Javascript
js鼠标左右键 键盘值小结
2010/06/11 Javascript
基于Bootstrap+jQuery.validate实现Form表单验证
2014/12/16 Javascript
如何改进javascript代码的性能
2015/04/02 Javascript
Jquery基础之事件操作详解
2016/06/14 Javascript
PHP捕捉异常中断的方法
2016/10/24 Javascript
jQuery Masonry瀑布流插件使用方法详解
2017/01/18 Javascript
Vue项目组件化工程开发实践方案
2018/01/09 Javascript
JavaScript运行原理分析
2018/02/09 Javascript
Vue2.5学习笔记之如何在项目中使用和配置Vue
2018/09/26 Javascript
微信小程序实现文字跑马灯
2020/05/26 Javascript
Node.js 多进程处理CPU密集任务的实现
2019/05/26 Javascript
bootstrap table实现横向合并与纵向合并
2019/07/18 Javascript
JavaScript和TypeScript中的void的具体使用
2019/09/12 Javascript
javascript 原型与原型链的理解及实例分析
2019/11/23 Javascript
Node.JS获取GET,POST数据之queryString模块使用方法详解
2020/02/06 Javascript
vue中移动端调取本地的复制的文本方式
2020/07/18 Javascript
CentOS6.5设置Django开发环境
2016/10/13 Python
python中使用%与.format格式化文本方法解析
2017/12/27 Python
python 统计列表中不同元素的数量方法
2018/06/29 Python
详解Python中is和==的区别
2019/03/21 Python
python Django中models进行模糊查询的示例
2019/07/18 Python
TensorFlow命名空间和TensorBoard图节点实例
2020/01/23 Python
python实现输入三角形边长自动作图求面积案例
2020/04/12 Python
Python猫眼电影最近上映的电影票房信息
2020/09/18 Python
Django url 路由匹配过程详解
2021/01/22 Python
阿迪达斯西班牙官方网站:adidas西班牙
2016/07/21 全球购物
GANT英国官方网上商店:甘特衬衫
2018/02/06 全球购物
馥蕾诗美国官网:Fresh美国
2019/10/09 全球购物
元旦联欢会主持词
2014/03/26 职场文书
对外汉语教师推荐信
2015/03/27 职场文书
初中物理教学反思
2016/02/19 职场文书
创业计划书之宠物店
2019/09/19 职场文书
goland设置颜色和字体的操作
2021/05/05 Golang
浅谈spring boot使用thymeleaf版本的问题
2021/08/04 Java/Android