实例:尽可能写友好的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 相关文章推荐
javascript eval和JSON之间的联系
Dec 31 Javascript
Jquery 点击按钮显示和隐藏层的代码
Jul 25 Javascript
JavaScript中的null和undefined解析
Apr 14 Javascript
AngularJS表单编辑提交功能实例
Feb 13 Javascript
jquery+ajax实现注册实时验证实例详解
Dec 08 Javascript
详解Node.js中的事件机制
Sep 22 Javascript
jQuery实现QQ空间汉字转拼音功能示例
Jul 10 jQuery
jQuery选择器特殊字符与属性空格问题
Aug 14 jQuery
jQuery 禁止表单用户名、密码自动填充功能
Oct 30 jQuery
vue.js图片转Base64上传图片并预览的实现方法
Aug 02 Javascript
深入理解JS中Number(),parseInt(),parseFloat()三者比较
Aug 24 Javascript
详解基于electron制作一个node压缩图片的桌面应用
Jan 29 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
ThinkPHP在Cli模式下使用模板引擎的方法
2015/09/25 PHP
语义化 H1 标签
2008/01/14 Javascript
jQuery function的正确书写方法
2013/08/02 Javascript
jquery 选取方法都有哪些
2014/05/18 Javascript
javascript实现在下拉列表中显示多级树形菜单的方法
2015/08/12 Javascript
谈谈JSON对象和字符串之间的相互转换JSON.stringify(obj)和JSON.parse(string)
2015/10/01 Javascript
jQuery获取checkbox选中的值
2016/01/28 Javascript
将json转换成struts参数的方法
2016/11/08 Javascript
fullCalendar中文API官方文档
2017/02/07 Javascript
jquery Easyui Datagrid实现批量操作(编辑,删除,添加)
2017/02/20 Javascript
js实现每日签到功能
2018/11/29 Javascript
微信小程序实现swiper切换卡内嵌滚动条不显示的方法示例
2018/12/20 Javascript
详解async/await 异步应用的常用场景
2019/05/13 Javascript
JS实现页面鼠标点击出现图片特效
2020/08/19 Javascript
JavaScript实现10秒后再次获取验证码
2020/12/02 Javascript
VUE中鼠标滚轮使div左右滚动的方法详解
2020/12/14 Vue.js
[51:17]完美世界DOTA2联赛循环赛Inki vs DeMonsTer 第二场 10月30日
2020/10/31 DOTA
Python同时向控制台和文件输出日志logging的方法
2015/05/26 Python
Python字符串拼接的几种方法整理
2017/08/02 Python
Python中GIL的使用详解
2018/10/03 Python
python爬虫获取百度首页内容教学
2018/12/23 Python
Flask模板引擎之Jinja2语法介绍
2019/06/26 Python
python实现的分析并统计nginx日志数据功能示例
2019/12/21 Python
Python实现动态给类和对象添加属性和方法操作示例
2020/02/29 Python
解决python 虚拟环境删除包无法加载的问题
2020/07/13 Python
Jupyter安装链接aconda实现过程图解
2020/11/02 Python
html5新增的定时器requestAnimationFrame实现进度条功能
2018/12/13 HTML / CSS
HTML5 File接口在web页面上使用文件下载
2017/02/27 HTML / CSS
英国豪华针织品牌John Smedley的在线销售商:The Outlet by John Smedley
2018/04/08 全球购物
大学同学聚会邀请函
2014/01/19 职场文书
挂职学习心得体会
2014/09/09 职场文书
沙滩主题婚礼活动策划方案
2014/09/15 职场文书
ktv服务员岗位职责
2015/02/09 职场文书
学校开除通知书
2015/04/25 职场文书
2016秋季运动会前导词
2015/11/25 职场文书
Java 中的 Unsafe 魔法类的作用大全
2021/06/26 Java/Android