尽可能写"友好"的"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 相关文章推荐
自己的js工具 Event封装
Aug 21 Javascript
Firefox中beforeunload事件的实现缺陷浅析
May 03 Javascript
node.js中的fs.readlink方法使用说明
Dec 17 Javascript
JavaScript DSL 流畅接口(使用链式调用)实例
Mar 15 Javascript
javascript实现动态改变层大小的方法
May 14 Javascript
BootStrap无限级分类(无限极分类封装版)
Aug 26 Javascript
在js代码拼接dom对象到页面上去的模板总结(必看)
Feb 14 Javascript
JavaScript验证知识整理
Mar 24 Javascript
详解Vue中过度动画效果应用
May 25 Javascript
20行JS代码实现粘贴板复制功能
Feb 06 Javascript
vue双向绑定数据限制长度的方法
Nov 04 Javascript
使用JavaScript和MQTT开发物联网应用示例解析
Aug 07 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
使用JavaScript创建新样式表和新样式规则
2016/06/14 PHP
Yii框架用户登录session丢失问题解决方法
2017/01/07 PHP
php实现购物车产品删除功能(2)
2020/07/23 PHP
PHP中Cookie的使用详解(简单易懂)
2017/04/28 PHP
PHP的RSA加密解密方法以及开发接口使用
2018/02/11 PHP
php中钩子(hook)的原理与简单应用demo示例
2019/09/03 PHP
Add Formatted Data to a Spreadsheet
2007/06/12 Javascript
jquery1.4 教程二 ajax方法的改进
2010/02/25 Javascript
js禁止小键盘输入数字功能代码
2011/08/01 Javascript
jQuery向后台传入json格式数据的方法
2015/02/13 Javascript
Javascript定义类(class)的三种方法详解
2015/03/13 Javascript
深入浅析JavaScript字符串操作方法 slice、substr、substring及其IE兼容性
2015/12/16 Javascript
JS实现图片点击后出现模态框效果
2017/05/03 Javascript
详解ElementUI之表单验证、数据绑定、路由跳转
2017/06/21 Javascript
JavaScript模板引擎应用场景及实现原理详解
2018/12/14 Javascript
vuex实现及简略解析(小结)
2019/03/01 Javascript
JavaScript 事件代理需要注意的地方
2020/09/08 Javascript
解决ant Design Search无法输入内容的问题
2020/10/29 Javascript
Vue router安装及使用方法解析
2020/12/02 Vue.js
[01:03]DOTA2新的征程 你的脚印值得踏上
2014/08/13 DOTA
[01:01:51]EG vs VG Supermajor小组赛B组 BO3 第二场 6.2
2018/06/03 DOTA
[51:06]DOTA2-DPC中国联赛 正赛 Elephant vs Aster BO3 第二场 1月26日
2021/03/11 DOTA
Python的IDEL增加清屏功能实例
2017/06/19 Python
Python操作MySQL模拟银行转账
2018/03/12 Python
使用Python写一个量化股票提醒系统
2018/08/22 Python
对python多线程与global变量详解
2018/11/09 Python
Python基础学习之函数方法实例详解
2019/06/18 Python
python科学计算之narray对象用法
2019/11/25 Python
python Tensor和Array对比分析
2020/01/08 Python
css3 column实现卡片瀑布流布局的示例代码
2018/06/22 HTML / CSS
AmazeUI 评论列表的实现示例
2020/08/13 HTML / CSS
数字漫画:comiXology
2020/06/13 全球购物
国培教师自我鉴定
2014/02/12 职场文书
中学生民族团结演讲稿
2014/08/27 职场文书
党员民主生活会材料
2014/12/15 职场文书
Redis调用Lua脚本及使用场景快速掌握
2022/03/16 Redis