实例:尽可能写友好的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 相关文章推荐
飞鱼(shqlsl) javascript作品集
Dec 16 Javascript
jQuery 学习第六课 实现一个Ajax的TreeView
May 17 Javascript
仿当当网淘宝网等主流电子商务网站商品分类导航菜单
Sep 25 Javascript
JavaScript函数参数使用带参数名的方式赋值传入的方法
Mar 19 Javascript
利用CSS3在Angular中实现动画
Jan 15 Javascript
JS 实现 ajax 异步浏览器兼容问题
Jan 21 Javascript
vue图片加载与显示默认图片实例代码
Mar 16 Javascript
ES6中module模块化开发实例浅析
Apr 06 Javascript
angularjs实现table增加tr的方法
Feb 27 Javascript
vue中实现图片和文件上传的示例代码
Mar 16 Javascript
js如何获取访问IP、地区、当前操作浏览器
Jul 23 Javascript
基于js实现抽红包并分配代码实例
Sep 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
php将金额数字转化为中文大写
2015/07/09 PHP
Javascript的IE和Firefox兼容性汇编
2006/07/01 Javascript
jquery和javascript中如何将一元素的内容赋给另一元素
2014/01/09 Javascript
用JQuery实现全选与取消的两种简单方法
2014/02/22 Javascript
在css加载完毕后自动判断页面是否加入css或js文件
2014/09/10 Javascript
js兼容火狐获取图片宽和高的方法
2015/05/21 Javascript
详解javascript高级定时器
2015/12/31 Javascript
基于javascript实现右下角浮动广告效果
2016/01/08 Javascript
js获取鼠标点击的对象,点击另一个按钮删除该对象的实现代码
2016/05/13 Javascript
轻松实现jquery选项卡切换效果
2016/10/10 Javascript
AngularJS中的缓存使用
2017/01/11 Javascript
BootStrap点击保存后实现模态框自动关闭的思路(模态框)
2017/09/26 Javascript
Bootstrap实现下拉菜单多级联动
2017/11/23 Javascript
JS实现数组的增删改查操作示例
2018/08/29 Javascript
解决v-for中使用v-if或者v-bind:class失效的问题
2018/09/25 Javascript
JavaScript继承的特性与实践应用深入详解
2018/12/30 Javascript
使用 Angular RouteReuseStrategy 缓存(路由)组件的实例代码
2019/11/01 Javascript
JS实现水平移动与垂直移动动画
2019/12/19 Javascript
JS实现瀑布流效果
2020/03/07 Javascript
[01:07:13]TNC vs Pain 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
[01:05:00]2018国际邀请赛 表演赛 Pain vs OpenAI
2018/08/24 DOTA
Python中的CURL PycURL使用例子
2014/06/01 Python
Python获取DLL和EXE文件版本号的方法
2015/03/10 Python
python 全局变量的import机制介绍
2017/09/07 Python
Python中max函数用于二维列表的实例
2018/04/03 Python
python实现从文件中读取数据并绘制成 x y 轴图形的方法
2018/10/14 Python
使用CodeMirror实现Python3在线编辑器的示例代码
2019/01/14 Python
Python目录和文件处理总结详解
2019/09/02 Python
mac安装python3后使用pip和pip3的区别说明
2020/09/01 Python
HTML5的结构和语义(5):交互
2008/10/17 HTML / CSS
世界最大的票务市场:viagogo
2017/02/16 全球购物
高中自我鉴定范文
2013/11/03 职场文书
好好学习保证书
2015/02/26 职场文书
2015大学生暑假调查报告
2015/07/13 职场文书
mysql 数据插入优化方法之concurrent_insert
2021/07/01 MySQL
Python获取指定日期是"星期几"的6种方法
2022/03/13 Python