(本文转载自“Java视线”,原文地址:http://forum.javaeye.com/viewtopic.php?t=13844,作者dlee)

(AJA X的七宗罪:http://news.csdn.net/news/newstopic/22/22216.shtml)

我不带任何主观色彩来评一下这个所谓的 “AJAX 的七宗罪”。

1、连带着 Flash 和 Ajax 一块骂了。

引用:没有链接的web就像森林中迷路的羔羊,这句看似广告语,其实是web设计的根本原则。

这句“原则”至少我并不知道,因此看起来不过就是一句广告语而已。我的原则是 Web 应用首先需要对于最终用户友好,然后才需要考虑对于搜索引擎友好。你使用 HTML FORM 提交的数据也是没有链接的,这些数据可以被搜索引擎搜索到吗?换句话说,可以添加在链接 URL 中的只有通过 GET 方法发送的请求。搜索引擎难道连使用 POST 方法提交的 FORM 数据都能搜索到吗?如果搜索引擎能搜索到这些数据,搜索引擎搜索到同样通过 HTTP 协议以明文形式发送的 XML 数据难道是很困难的事情吗?

必须要考虑对于搜索引擎友好的应用也是有限的。你以为 Google 真的没有办法解决这些问题吗?太小看 Google 了吧?

2、这个作者显然很少做 JavaScirpt 开发,以至于说出这样没有调查的话来:

引用:更可怕的是在javascript中竟然没有一款顺手的Debug软件,很多写js的老手到今天还是用最原始的alert("")来调试,splinetech JavaScript HTML Debugger 算是一个看起来还像个样子的调试器吧,可惜不是免费的,几十大刀让我这种穷人只能望而生叹了。

M$ Visual InterDev、Office 2003 中带的 Script Debugger 都是非常好用的调试工具。如果不愿意花钱买这些工具,还可以使用 Mozilla 开发的 Venkman,调试功能已经非常完善了。说 JS 没有很好的 IDE 是实情,说 JS 没有很好的调试工具简直是天大的笑话。

3、

引用:和上面说的差不多,层层包含js文件是AJAX的通病,再加上以往的很多服务端代码现在放到了客户端,所以每次打开一个页面会包含很多的无用的js文件也一同下载下来。虽然宽带越来越普及,但是减少代码冗余还是每个web设计者的必修课。

完全是没有调查的胡说,如果通过不同的文件对于 JS 代码进行了认真的组织,将 JS 函数分到很多小文件中,一个页面仅仅只需要加载它自己使用到的 JS 文件,何来冗余代码之说?

4、 引用:什么叫破坏web标准?点击查看全部,这就是破坏了web标准。好好的A标签放着不用,偏要用span。这种例子很多,flickr中的标题单击后可以更改,这虽然(也包括我)是大家一致叫好觉得方便的设计,但同时这也是歧义了 web元素本身的含义,物是人非这个词不知道用的合不合适?

这仅仅是一个具体应用中的用法,居然也归到了 Ajax 头上,真是欲加之罪,何患无词。这里如果简单地将 span 换成 a 难道不是很容易的事情吗?如果使用 a 就不能使用 onclick 了吗?按照作者的想法,似乎所有的 a 都应该只能是简单链接,不能加上 onclick,加上 onclick 就变成了 Ajax,就触犯了天条,破坏了 Web 标准。况且给 span 加上一个 onclick 居然就上纲上线到破坏 Web 标准的层次,我研究 Web 标准这么多年,也没有看出究竟破坏了哪一款哪一条的 Web 标准。Web 标准中什么地方规定只允许使用 a,不允许使用 span 来实现了?况且在最新的 XHTML 1.2 标准中,a 已经变成了一个不推荐使用的标记。什么是 Web 标准,什么是破坏 Web 标准?回去翻翻书吧。

5、

引用:浏览器和浏览器之间的差异一直都是web设计者心中永远的痛,支持的css不一样,支持的客户端脚本不一样,有的竟然连客户端脚本的用法都有不同。这让程序员非常苦恼,最明显的就是调用xmlhttprequest了,req=(window.XMLHttpRequest)?new XMLHttpRequest():new ActiveXObject("Microsoft.XMLHTTP");这段创建xmlhttp对象的代码就是为了适应IE和非IE两天阵营的浏览器的经典例子。说是没有back和没有history的浏览器,这也是一个讽刺,主要是指在AJAX下点击链接是不Redirect页面,所以不存在后退和前进了,同样,没有后退和前进也就无存找浏览历史纪录了。back和history存在的根本就是url的改变,在AJAX下人们发现不改url也同样能达到内容改变这个酷酷的特点,何乐而不为呢?

我提到过多次《网站重构》,这本书要解决什么问题?femto 开始读了吗?曾经产生过读这本书的欲望吗?

创建 XMLHTTP 对象的不同语法只是一个非常小的问题,这是在 XMLHTTP 没有被完全标准化之前的暂时问题。现在基于 Web 标准做开发,必须要写针对不同浏览器的代码片断的场合已经非常少了,封装这些差异的 JS 库网上也已经有很多了。

无法利用 back/history 的问题在 Google Maps 中是使用 IFrame 来解决的,这个问题我在 BEA User Group 的演讲中已经说过了。

6

引用:xml有一个致命的缺点,那就是加载的资源耗费,这好像是所有平台下xml的通病。google map虽然是Jesse James Garrett推荐的AJAX的品牌代言人,但是gmap并没有用xml,而是用了原生的javascript数组,我自己在用AJAX从服务端传回数据时也从来不用 XML,因为它让我更繁琐让系统更慢。服务端首先要调用xml对要传输的数据进行封装,客户端得到数据后再调用xml进行解析,简直是画蛇添足。

致命吗?我做了这么多浏览器端的 XML 开发,为什么至今没有感受到?Google Maps 服务器端传给客户端的数据就是不折不扣的 XML,其它的开发人员还可以对这个 XML 进行定制加入自己的数据。Google Maps 还在客户端几个功能上使用了 XSLT。说 Google Maps 没有使用 XML,要不要我把我亲自整理过的 Google Maps 客户端的代码发给你你才能闭嘴?

7、

引用:AJAX适用于什么?能干什么?能带来什么?在网站上用AJAX那是笑话,除非像Google Map和Flickr这样的专业领域的网站外,普通网站根本没必要用这个技术;在庞大的企业应用市场估计还能有AJAX的一点容身之地,不过在MS、 SUN不会看着AJAX这个野孩子来在他们的地盘上撒泼的,如果大家都用AJAX,那java给谁卖?.net给谁卖?所以AJAX在企业应用也不是长久之地。所以,AJAX现在找不到自己合适的位置是个很大的尴尬。疑病乱投医,最近把AJAX的矛头指向Flash和Applet就是一个例子。

又是一番奇谈怪论。说大公司不会使用 Ajax 完全是主观臆测。事实上,大量使用客户端 JS 的大公司包括以下这些:

Macromedia:在 Dreamweaver 产品中包括了大量的 JS 代码。

Oracle:很多产品都使用了 JS,目前对于 Ajax 很感兴趣。这个消息是我在深圳 Oracle 做开发的一个朋友亲口告诉我的。

SAP:早在很多年以前,SAP 就在其产品中大量使用了 JS+XMLHTTP 的技术,仅仅是 SAP 没有炒做这个概念而已。说 Ajax 不适合企业应用,SAP 是靠做什么吃饭的?

Google:我已经不需要再说什么了。

文章来源:Java视线javaeye.com

转载于:https://www.cnblogs.com/coffeeliu/archive/2006/05/20/405208.html

驳“AJAX 的七宗罪”相关推荐

  1. 驳AXAJ的七宗罪 (转)

    我不带任何主观色彩来评一下这个所谓的 "AJAX 的七宗罪". 1.连带着 Flash 和 Ajax 一块骂了. 引用:没有链接的web就像森林中迷路的羔羊,这句看似广告语,其实是 ...

  2. AJAX开发过程中的七宗罪

    在开发AJAX程序的过程中,很多人都会犯一些常见的错误,有些错误可能会危及到AJAX程序的功能和性能,使AJAX程序的优势损失殆尽.这里笔者将给大家介绍开发AJAX程序过程中需要注意的七宗罪. AJA ...

  3. OpenStack进入第二阶段需要解决的“七宗罪”

    以下内容节选编译自分析人士Steve Chambers近期撰写了一份OpenStack市场研究报告,发表在Wikibon Premium网站.报告的名称为<OpenStack进入第二阶段> ...

  4. 好产品要满足人性七宗罪

    好产品要满足人性"七宗罪": 作为一个有20年实战经验的互联网老兵,周鸿祎称得上是一个优秀的产品经理,一手打造了众多国民级的产品. 每个人都有成为产品经理的潜质.但是," ...

  5. 产品经理学习---人性七宗罪:打造完美产品的金钥匙

    那些我们不愿承认的人性七宗罪,恰好是打造产品的最佳依据,正视人性之恶,打造产品之美. 但丁在<神曲>中称人有七宗罪:傲慢,嫉妒,暴怒,懒惰,贪婪,贪吃和色欲.个人认为七宗罪其实是人的本能, ...

  6. CSDN Blog 之七宗罪

    CSDN Blog 之七宗罪 第一,不稳定,就为这个,我曾一度离开这里,不过终究还是有点怀念我写的那点儿东西.目前的稳定性比以前有所改善. 第二,我习惯用firefox,csdn的blog大体上还算兼 ...

  7. 让你此生难成大器的七宗罪

    是,你没看错......说的就是你--说的就是你呢! 我此刻死盯着你的眼睛(好吧,也不是那么名副其实的"盯着",因为你看到的是这篇文章不是我,但请想象,我现在正在死盯着你,我的镭射 ...

  8. 电信资费七宗罪,终端的故事

    电信资费七宗罪,终端的故事 文 | 宁宇 你的手机是自己买的,还是运营商连合约一起卖给你的?运营商让你以优惠的价格甚至零元拿到了终端,运营商获得了什么利益?为何如今客户对合约机从爱走向恨?这条走了十几 ...

  9. Jetpack MVVM 七宗罪之四: 使用 LiveData/StateFlow 发送 Events

    久违的 " Jetpack MVVM 七宗罪 " 系列,今日再开.本系列主要盘点 MVVM 架构中各种常见错误写法,并针对性的给出最佳实践,帮助大家掌握 Jetpack 组件最正确 ...

最新文章

  1. Shell脚本读取Redis键值对
  2. php函数表达式,php正则表达式常用函数介绍
  3. 如何将 SAP UI5 应用托管到 Github 网站上并运行
  4. 七分钟理解什么是 KMP 算法
  5. Linux怎么设置ntp授时,linux设置ntp时间同步服务器地址
  6. JS—触摸事件、手势事件
  7. ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp
  8. python中re是什么库_Python正则表达式和re库知识点总结
  9. 将不确定变成确定~Uri文本文件不用浏览器自动打开,而是下载到本地
  10. C++自增和自减运算符(--和++)
  11. 【springmvc】传值的几种方式postman接口测试
  12. html实验原理及目的,网页设计实验报告_图文
  13. 双硬盘安装win10和linux双系统,双硬盘安装 Win 10 和 Ubuntu 16.04 双系统
  14. 百度云盘群组中资源文件实时同步更新保存到自己群组的方法
  15. RGB格式图片转YUV图片
  16. 项目经验怎么写HTML,简历中的项目经验怎么写
  17. word压缩文件大小,word压缩方法
  18. 去除高清视频锯齿几个方法
  19. vue页面白屏的原因及优化
  20. 数据库用户创建、角色创建、用户和角色授予权限和权限收回

热门文章

  1. class() 高级用法 -- lua
  2. python中为什么无法导入类_ImportError:无法导入名称类型
  3. mybatis 配置_MyBatis教程3:优化MyBatis配置文件中的配置
  4. AWS — AWS 上的 5G 专网部署模式
  5. 5GS 协议栈 — PFCP 协议 — QER QoS 实施规则
  6. 5G 信令流程 — UE 寻呼(Paging)流程
  7. Linux 安装 TigerVNC
  8. 5G NGC — 关键技术 — 网络切片 — 切片的运维与运营
  9. 338. Counting Bits
  10. 系统架构师秘籍(二)软件架构- 续