deerchao的blog

Be and aware who you are.

讨论一下,关于引入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 阅读(1573) 评论(6)  编辑 收藏 网摘

评论

#1楼  2007-01-20 21:52 Cat Chen      

我的看法是,URL就是URL,它是Locator,没说是Page Locator还是InPage Resource Locator,所以用URL就够了。而你说的可以看做URL的子集,而且仅仅是实现方相关的,对于访问方而言是通明的。   回复  引用  查看    

#2楼 [楼主] 2007-01-20 22:02 deerchao      

Cat Chen,你说的没错,其实我所说的"InPage"只是一个逻辑上的概念,因为使用Asp.net或Ajax的人,通常都只认为一个URL对应一个Page类或HTML页,所以加入这么一个概念,或许能更容易被接受。
  回复  引用  查看    

#3楼  2007-01-21 01:22 Jeffrey Zhao      

使用location的hash比较好。
Bookmark和Back按钮就是这么实现的。   回复  引用  查看    

#4楼  2007-01-22 00:48 Icebird      

一个相关的观点认为,使用动态页面更新使得用户难于将某个特定的状态保存到收藏夹中。该问题的解决方案也已出现,大部分都使用URL片断标识符(通常被称为锚点,即URL中#后面的部分)来保持跟踪,允许用户回到指定的某个应用程序状态。(许多浏览器允许JavaScript动态更新锚点,这使得Ajax应用程序能够在更新显示内容的同时更新锚点。)这些解决方案也同时解决了许多关于不支持后退按钮的争论。

一般都是使用window.location.hash和注册回调函数来提升AJAX的Usability
  回复  引用  查看    

#5楼  2007-01-22 10:44 天天[匿名]      

我感觉楼主说的是,很同意那样的观点,发出一个链接之后还得告诉他“先点这,再双击那,等几秒,然后点那”,确实很麻烦。毕竟很多人喜欢“傻瓜”式的链接。
但是现在有一个趋势:象矛与盾的竞争,一方面许多人只想让本站的资源不泄漏,所以出现了防止图片盗链接,防止flash被下载(sina博客里的flash就采用被下载技术),以及搂主说的URL隐藏。
但是另外一方面既然是网络,他的基本思想就应该是资源共享,所以我感觉这种隐藏技术并不好   回复  引用  查看    

#6楼 [楼主] 2007-01-22 14:00 deerchao      

Icebird: 可不可以给个介绍这个技术的链接?或者使用这个技术的例子?
我觉得用#来定位可能不可行,因为浏览器可能会在页内查找指定的id/name,不会回发到服务器。
  回复  引用  查看    


标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2007-01-21 05:03 编辑过
Google站内搜索


China-pub 计算机图书网上专卖店!6.5万品种 2-8折!
近千种 9-95 新二手计算图书火热销售中!

相关文章:

相关链接:


 
<2007年1月>
31123456
78910111213
14151617181920
21222324252627
28293031123
45678910

导航

统计

公告

给网络添加价值,就是让自己增加价值.

本博客所有内容,均为原创或对互联网已有资源的再加工,希望对你有用.在声明原作者的前提下,你可以任意使用,但本人对其正确性,使用的后果等不做任何担保,也不负任何责任.

正则表达式30分钟入门教程 v2.21 2007-8-3

I Want Spec#!

与我联系

搜索

 

常用链接

留言簿(66)

我管理的小组

我的标签

随笔档案(127)

文章分类(9)

文章档案(9)

新闻档案(9)

Links

积分与排名

最新评论

评论排行榜