令狐虫的无聊空间

技术及生活笔记(8log是一种生活方式~~~)

导航

<2012年2月>
2930311234
567891011
12131415161718
19202122232425
26272829123
45678910

统计

公告

def run(level, a, b, c):
    if (level <= 1):
        return
    elif (level == 2):
        move(a, b)
        move(a, c)
        move(b, c)
    else:
        run(level-1, a, b, c)
        move(a, b)
        run(level-1, c, a, b)

档案

随笔分类

相册

其他好站

友情链接

登录

[技术]对Ajax的一点看法

上次我关注了一下Ajax,今天猛禽就给了我一个链接:AJAX的七宗罪

虽然我对Ajax认识不多,而且不做网站所以说的话也不够权威,但是我还是认为嘟嘟对Ajax的理解有问题

就跟现在流行的网站重构争论一样,会有人跳出来说这个效果那个效果你用div+css用标准Javascript做不到,我用table用IE专用属性就很容易。但是有一个问题:网站的目的是什么? 是为了炫耀效果还是为了提供信息?

诚然我们用了div+css之后效果方面也许不如IE-only的页面,但换来的是所有平台上对所提供信息的正确展现。这就是网站的真义

现在的Ajax也一样。

说到链接,首先我们要搞清楚的一点是:链接是做什么用的?

另一个问题是:信息应该如何提供?

我们先来看第一个问题,链接是做什么用的。我认为链接的最重要的作用是:提供到另一个信息位置的指向。举个例子,比如Gmail里,帮助就是一个单独的信息,一个和Gmail应用本身独立的信息。因此,Gmail里理所当然的提供了一个指向帮助的链接。但是信件本身以列表方式还是以全文方式呈现,这只是一个表现方式而已,都是属于Gmail这个应用本身的,为什么一定要用链接来完成这种工作呢?

另一个问题是,信息应该如何提供。信息提供的方式自然有很多种:XML、HTML、二进制……等等等等。目前最有利于搜索引擎的自然是静态的HTML文本,但是,HTML真的是数据表达的一个最好途径吗?显然不是,因为HTML里夹杂了表现信息,而且无法清晰的表现信息本身的含义。从这一点上来说,XML显然好得多。Ajax的目标是将信息本身以XML表达,从而将数据表现和信息数据本身分离开,这正是将信息标准化、有序化的一个途径,面对更标准更有语义的XML,需要修改的是搜索引擎,而不是XML方法。

当然,用非XML的方式从服务器得到数据,不是说不可以,但是在一定程度上就弱化了数据标准性,那样就真的是“搜索引擎不友好”乐

Ajax并没有破坏标准,相反的它是将现有标准融合在一起的一个很好的尝试。那个XMLHTTPRequest问题是因为没有标准,没办法。至于Javascript的调试问题,那个只是一个开发工具初级阶段必然的状况。就表提乐

有人说:貌似JS已经是有N年历史了,为什么就没人肯像样地做一个JS开发工具呢?

这是因为以前人们一直认为Javascript是一个“轻量级的小东西”,现在发现它的价值乐

实际上,如果再发展下去,就算没有Ajax,Javascript的地位还是会得到提高的。比如SVG,没有Javascript去操作DOM,意义和实用价值就降低很多。 到时候不怕没有Javascript的专用开发工具诞生

BTW:我认为Dux2005.org这个站点用Ajax用得有点过了,那些tab点击我认为应该用链接来表现的。 而这个站点为什么需要用链接来表现呢,需要数据的话可以用rss来提取啊

BTW2:Google Maps我没有看过,但我认为Gmail真是Ajax的典范之作。它把数据、信息、操作、表现之间的分离和合作控制得非常好。该链接的地方就链接,不该链接的地方坚决没有链接(比如“帮助”和“设置”这两个,虽然样子差不多,但是一个有链接一个没有)。而且你想得到数据的话,还有一个RSS源可以提供给你。

我觉得以后的网站就应该是这样。用Ajax构建“应用”,用RSS提供“数据”

2005年5月18日 13:10

评论

# 回复: [技术]对Ajax的一点看法 2005-5-18 15:23 duduwolf

css是为了推崇web标准,ajax也说要完全支持css,但我想在手机浏览器上或者盲人浏览器上肯定对javascript的支持不好,这其实就是一个自相矛盾的病句。

在我看来,庞大的企业应用应该是ajax大显身手的地方,对于web站点,ajax用处不大。没有链接是web设计的兵家大忌,而且在日益趋向静态化web的今天,ajax这种动态取数据无疑也会增加服务器负担,客户端又需要每次下载大量大量的js文件,也是提高了浏览成本。

我还是认为ajax最好是拿来开发b/s系统和一些专业领域的应用,或者最多在像cms的后台维护部分可以应用ajax,展现给浏览器的页面还是少用ajax好。

# 回复: [技术]对Ajax的一点看法 2005-5-18 15:54 令狐虫

嗯,我想JavaScript本来就没有拿到手机浏览器上去用的意思。
我们来看看Ajax之前和Ajax之后都改变了什么:
Ajax之前:
服务器负责业务逻辑,并额外产生页面作为结果,客户端只负责页面间的跳转和数据的提交。

Ajax之后:
服务器负责业务逻辑,并产生数据。客户端负责构建页面。并在必要时向服务器请求数据。

我们可以看到,实际上一个系统最关键的部分:业务逻辑,在Ajax前后并无变化。变化的是:1、服务器的接口(由CGI变化为Web Service或XML-RPC,也许用词不太准确,但是我想你能理解),2、服务器和客户机交互的内容(由HTML变为XML)。

那么,对于一个Ajax化的应用来说,如何支持不能被Ajax的浏览器呢?方法其实也很简单,牺牲Javascript所带来的神奇效果,把数据表现的工作再次交还给服务器去做。但是,只需要加一个Interface,将原先的XML数据生成为HTML或者其他什么表现形式即可。

换句话说,要让一个非Ajax的应用变成Ajax的,可能比较难。而将一个Ajax的应用变成非Ajax的,会简单的多。Ajax化相当于给原来的网站进行了一次接口标准化的重构。这是我感觉的Ajax的最重要的意义。

既然Ajax之后仍然能还原成非Ajax,那么Ajax还有什么作用呢?我为什么不能在将网站接口标准化之后仍然以服务器主导的方式工作呢?当然可以。我想,这时候使用Ajax的目的就非常单纯了:在可能的情况下,提供好的用户交互体验。(毕竟和Flex比起来,Ajax不需要额外的插件)

^o^

# 回复: [技术]对Ajax的一点看法 2005-5-18 16:11 jinjazz

555~~~
80

# 回复: [技术]对Ajax的一点看法 2005-5-19 1:09 duduwolf

我又写了一篇,欢迎赐教,吼吼。

# 回复: [技术]对Ajax的一点看法 2005-5-19 1:10 duduwolf

晕,忘了贴地址
http://duduwolf.winzheng.com/post/119.asp

主题  
姓名  
主页
验证码  
内容   

请不要发表可能给我们带来伤害的政治言论,谢谢配合