驳AXAJ的七宗罪 (转)

我不带任何主观色彩来评一下这个所谓的 “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:我已经不需要再说什么了

转载于:https://www.cnblogs.com/nyxuwen/archive/2006/12/07/585770.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/263223.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode—<双指针专项>剑指 Offer 18、21、22、25、52、57、58 - I

剑指 Offer 18. 删除链表的节点、21. 调整数组顺序使奇数位于偶数前面、22. 链表中倒数第k个节点、25. 合并两个排序的链表、52. 两个链表的第一个公共节点、57. 和为s的两个数字、58 - I. 翻转单词顺序 题目描述: [18] 给定单向链表的头指针和一个要删除的节点的值…

Android应用程序绑定服务(bindService)的过程源代码分析

Android应用程序组件Service与Activity一样,既可以在新的进程中启动,也可以在应用程序进程内部启动;前面我们已经分析了在新的进程中启动Service的过程,本文将要介绍在应用程序内部绑定Service的过程,这是一种在应用程…

递归-汉诺塔

#A:起始,B:中间,C:最后count0def hanoi(n,A,B,C): global count if n1: print("{}:{}->{}".format(1,A,C)) count1 else: hanoi(n-1,A,C,B) #将前n…

Bootstrap系列 -- 8. 代码显示

一. Bootstrap中的代码块 代码块一般在博客中使用的较多&#xff0c;比较博客园中提供的贴代码. 在Bootstrap中提供了三种形式的代码显示 1. 使用<code></code>来显示单行内联代码 2. 使用<pre></pre>来显示多行块代码 3. 使用<kbd></kbd>…

PowerDesigner12对SQL2005反向工程问题.

用PowerDesigner12利用ODBC连接SQL2005进行反向工程&#xff0c;总分报错[Microsoft][ODBC SQL Server Driver][SQL Server]未能准备评语句SQLSTATE37000解决办法&#xff1a;把&#xff02;更改默认的数据库为&#xff02;这个选项去掉在中选择要进行操做的数据库.转载于:http…

LeetCode—<搜索与回溯专项>剑指 Offer 12、13、34、36、54

剑指 Offer 12. 矩阵中的路径、13. 机器人的运动范围、34. 二叉树中和为某一值的路径、36. 二叉搜索树与双向链表、54. 二叉搜索树的第k大节点 题目描述&#xff1a; [12] 给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中&#xff0c;返回…

导数--基本概念

转载于:https://www.cnblogs.com/liuys635/p/11242741.html

解决IE6、IE7、Firefox兼容最简单的CSS Hack

写三句代码来控制一个属性&#xff0c;区别Firefox&#xff0c;IE7&#xff0c;IE6&#xff1a; background:orange; *background:green !important; *background:blue; 说明&#xff1a;这段代码会使在Firefox中&#xff0c;背景呈橙色&#xff1b;IE7中为绿色&#xf…

[导入]创建、查询、修改带名称空间的 XML 文件的例子

XML的应用越来越广泛了&#xff0c;如Vista、Flex编程都将使用 XML&#xff0c;正确掌握XML的各种操作&#xff0c;对提高编程效率至关重要。下面就是一个综合处理带名称空间的XML的例子。 文章来源:http://blog.csdn.net/net_lover/archive/2006/12/18/1447434.aspx 转载于:ht…

Kernel那些事儿之内存管理(2) --- 百闻不如一见

上次介绍了物理内存管理中三位主要人物中的node 和zone。这两位是当官的&#xff0c;一个是县长&#xff0c;一个是里长&#xff0c;不敢不先介绍啊。接下来出场的就是我们的老百姓了 --- page frame。Page frame是物理内存的基本组成单位&#xff0c;在Kernel中由结构体 struc…

LeetCode—<排序专项>剑指 Offer 40、41、45、61

剑指 Offer 40. 最小的k个数、41. 数据流中的中位数、45. 把数组排成最小的数、61. 扑克牌中的顺子 题目描述&#xff1a; [40] 输入整数数组 arr &#xff0c;找出其中最小的 k 个数。例如&#xff0c;输入4、5、1、6、2、7、3、8这8个数字&#xff0c;则最小的4个数字是1、2…

归并 快排 快速幂

/* 归并排序&#xff1a;不断将数组切分为两部分递归切分直到数组长度为1&#xff0c;之后逐渐有序合并 */ #include <cstdio> #include <iostream> #include <cmath> using namespace std;//归并 小-->大 void Merge(int a[], int s, int m, int e, int …

dev GridControl双击行事件

今天用到了gridcontrol这个控件,要求写一个gridview的双击事件,因为想要的效果是只双击行才出Message,用gridview的Double_Click我没实现,后来想到MouseDown,一试,很简单,首先,仍旧需要将gridview1.OptionsBehavior.Editable设为false,下面是代码: Skelta BPM.NET&#xff08…

自己动手编写一个ajax extender

该扩展的功能有以下几点&#xff1a;1、当鼠标移到某个按钮上时&#xff0c;该按钮显示一个Css样式&#xff1b;2、当鼠标移开该按钮时&#xff0c;该按钮显示另外一个Css样式&#xff1b;3、当鼠标点击该按钮时&#xff0c;执行一个用户自己定义的javascript函数&#xff1b; …

jQuery:表格的奇偶行变色,jquery实例之表格隔一行

jQuery:表格的奇偶行变色<html> <head> <title>表格变色</title> <style type"text/css"> .odd{background:#ffffee;} .even{background:#fff38f;} .first{background:red;} .last{background:blue;}…

分金币 Uva 11300

题意 给定N个人成环状坐&#xff0c;每个人初始分配Ai的金币&#xff0c;金币总数可以被N整除&#xff0c;每个人可以给左右相邻的人一定数量的金币使得最终每个人的金币数量相同&#xff0c;求转移数量最小的方案所转移的总金币数量。 N<1000000 对每组数据保证输出在INT64…

LeetCode—<搜索与回溯专项>剑指 Offer 55 - I、55 - II、64、68 - I、68 - II

剑指 Offer 55 - I. 二叉树的深度、55 - II. 平衡二叉树、64. 求12…n、68 - I. 二叉搜索树的最近公共祖先、68 - II. 二叉树的最近公共祖先 题目描述&#xff1a; [55 - I] [55 - II] [64] 求 12…n &#xff0c;要求不能使用乘除法、for、while、if、else、switch、case等关…

Tip:使用Extender的ResolveControlID事件

1、分析 不知道大家在使用ASP.NET AJAX Control Toolkit里的各个Extender控件时&#xff0c;有没有接触过ResolveControlID事件&#xff1f;这个事件在官方也只用了很少的笔墨来描述。的确&#xff0c;这个事件不太常用&#xff0c;看看ASP.NET AJAX的演示站点&#xff0c;根本…

我常用的shell命令

我常用的shell命令tar:tar jxvf filename.tar.bz2tar xvf filename.tartar cvf filename.tar file tar cjvf filename.tar.bz2 file wc:ls -l | wc -ltr:ls -l | tr a-z A-Zgrep:ls -l | grep ^dls -l | grep -n ^dls -l | grep -v ^decho "theaaaathebbbbthe | grep \<…

Git常用命令整理

git init # 初始化本地git仓库&#xff08;创建新仓库&#xff09;git config --global user.name "xxx" # 配置用户名git config --global user.email "xxxxxx.com" # 配置邮件git config --global color.ui true # git status等命令自动着色git config -…