曾经, Ajax 被当成是 Web 2.0 的全部, 正如 DIV+CSS 被当成是Web标准一样. 到如今, 应用大量 Ajax 技术的网站仍然面临着一个重要问题, 那就是有意义的内容无法被搜索引擎收录. 面对大量 Ajax 网站的产生, 搜索引擎(事实上是爬虫)正在朝着越来越像用户浏览器的方向发展.
很多站长可能发现, 他们利用 JavaScript 脚本来记录网站访问的日志里, 经常能发现来自”美国加利福尼亚州山景市 Google 公司”的访问记录. 别高兴得太早, 可不是 Google 的工程师在看你的网站, 只是他们支持 JavaScript 的爬虫刚刚抓取了你的网站.
当然, 为了能让你的 Ajax 网站能被搜索引擎收录正确的内容, 你的网站必须做到:
每一个不同的内容都能通过一个完整的 URL 来访问!
例如, Google Reader 的 Trends 页面, 可以通过 http://www.google.com/reader/view/#trends-page 来访问. 但是, 仅仅使用锚点(即’#'号后面跟着文本), 并不能让你的 Ajax 内容被爬虫抓取. 因为, 链接中的’#'号和其后面的内容是不被发送到服务器端的! 也就是说, 你在浏览器中输入 http://www.ideawu.net/ 和 http://www.ideawu.net/#ajax, 这对服务器都是一样的.
有一种被称为”Hijax”或”Hijax-links”的技术可以用来保证既使用 Ajax, 网站也能被爬虫抓取. 这项技术的要求是, 你的 Ajax 网站要创建真正的链接:
<a href="http://www.ideawu.net/?p=1">
查看文章详细内容</a>
但是, Ajax 在哪呢? 关键在于用 JavaScript 使这个链接的点击失效(不跳转), 转而执行你的 js 代码. 直观的做法是:
<a href="http://www.ideawu.net/?p=1" onclick="ajax_view(1); return false">
查看文章详细内容</a>
说句题外话, 我对我公司内部某个新闻系统使用 Ajax, 但不应用”Hijax”感到十分愤怒! 因为 Ajax 降低了查看新闻的效率!
Google 公司更前进了一步, 它制定了一个规范(Ajax Crawling Specification), 希望那些使用 Ajax 同时又想被 Google 正确收录的网站能够遵守. 这个规范对于网站主来说的一个关键点就是, 创建格式符合规范的链接, 并为这些每一个唯一的链接提供一个完整的页面.
对于上面查看文章详细内容的例子, 链接应该改为
http://www.ideawu.net/#!view_1
是的, 就是在’#'号后面跟着一个感叹号. 前面已经说过, ‘#’号和其后面的内容是不被发往服务器端的, 所以, Google 的爬虫会把这个 URL 链接转成一个原始的链接
http://www.ideawu.net/?_escaped_fragment_=view_1
当你收到这样的一个链接访问请求时, 说明就是 Google 的爬虫来了. 然后, 你给它返回包含1号文章详细内容的完整的HTML, 包括 html, body 等标签. 然后, Google 的索引程序会解析这个 HTML, 提取出关键字等. 当用户在 Google 网站查询该页面包含的关键字, 并且你的页面出现在结果中, 用户就会看到一个”http://www.ideawu.net/#!view_1″的链接.
关于AjaxCrawling的更多内容可以查看:
http://code.google.com/web/ajaxcrawling/index.html
分享到:
相关推荐
Hijax 是一个支持基于 AJAX 开发的 Web 框架。 它将 Javascript 客户端事件链接到服务器代码 (Java),并允许从服务器事件处理程序修改页面内容,甚至是标准 HTML 文件(不需要服务器端标签)。
《JavaScript DOM编程艺术》是Jeremy Keith所著的一本关于JavaScript和DOM(文档对象模型)编程的经典图书,它不仅阐述了JavaScript和DOM的基本知识,还着重讲解了DOM编程技术背后的思路和原则。本书被赞誉为Web设计...
书中主要介绍了JavaScript、DOM、XMLHttpRequest、数据格式等,同时还提出了一种Hijax方法,即可以让Web应用程序平稳退化的方法。 本书适合各层次Web开发和设计人员阅读。 编辑推荐 本书介绍了如何构建无懈可击的...
书中主要介绍了JavaScript、DOM、XMLHttpRequest、数据格式等,同时还提出了一种Hijax方法,即可以让Web应用程序平稳退化的方法。 本书适合各层次Web开发和设计人员阅读。 作者简介 · · · · · · Jeremy Keith...
它使用@ PelagicCreatures / Sargasso监视DOM,并在将元素添加到DOM中或从DOM中删除元素时实例化和销毁元素上的MDC Javascript类,从而使MDC HIJAX友好。 TropicBird还提供了一些内置的导航栏“汉堡包”图标管理,...
@author Michael Rhodes (except where noted)@license MITMade in Barbados :Barbados: Copyright :copyright: 2020-2021 Michael RhodesSargasso使HTML元素了解诸如文档(DOM)插入和删除,HIJAX页面加载,滚动,...