讨论一下,关于引入Ajax InPage Resource Locator


首先说明,Ajax InPage Resource Locator这个词是我自造的,主要的意思就是在QueryString里添加一部分用于指明在Ajax页面里某项内容的具体位置(也可以认为是用户在页面进行的操作的记录)。

为什么要引入这么一个东西?

我们打开一个典型的Ajax页面,比如:Asp.net Ajax主页,然后点击上面的"Get Started",这个过程中浏览器的地址栏没有改变,但具体的内容却改变了,这会给用户的交流/收藏带来很多的困难,远没有不使用Ajax时一个URL对应一定的内容方便。想想这样的情景:你发现了一个好东西,想给朋友分享,但是发出一个链接之后还得告诉他“先点这,再双击那,等几秒,然后点那”,是不是很麻烦?

不仅是用户之间的交流,而且搜索引擎及其它程序碰到Ajax时,也会有很大的麻烦。在使用Ajax的网页上,有很多内容,不对Web Server进行Post(或运行JavaScript),搜索引擎根本不可能见到,但如果随便Post(或运行JavaScript),又可能造成稀奇古怪的影响--你不希望你的电子商务网站每天被搜索引擎莫名其妙地下几个订单吧?

如果使用一种方式,给Ajax页面内目前不能用URL定位的内容分配一个标识,我们就能避免这些问题。

例如,给我们上面提到的内容分配以下URL: http://ajax.asp.net/Default.aspx?&&GetStarted, 然后配合其它手段,就能解决这些问题。这里的&&GetStarted就是我所说的Ajax InPage Resource Locator。

上面的&&(具体用什么字符串可以讨论,这里只是一个示例)用于告诉Server端的程序,后面的GetStarted是用来在页面内部定位内容的,于是服务器端就能返回正确的内容;
有了能直接定位内容的URL,我们就可以在页面上提供比较精确的“分享本页内容”“收藏”等功能了;
对于搜索引擎,我们可以采用类似Google搜索结果页面的技术:在用户操作之前,链接的Href是正常的HTTP URL,点击它时变成另外的(比如 javascript:__doPostBack...)。这样一来我们不但能得到更好的SEO,而且顺带提升了对浏览器的兼容性(不支持javascript的浏览器也能使用)。

大家觉得我的想法如何?

另外,我觉得不但Ajax页面可以使用这个技术,普通的需要PostBack的Asp.net等页面也可以使用。

其实PostBack/Ajax等,我觉得是用于“用户交互”,而不是“信息发布”的,在前者中根本就不需要有URL来定位其中的一个步骤/动作。但现实是很多用于“信息发布”的系统也使用了这些PostBack/Ajax技术,谁又能简单地指责这样做的人错了呢?

posted on 2007-01-20 21:21  deerchao  阅读(1841)  评论(6编辑  收藏  举报