Javascript 锚定AJAX和SEO解决方案?

Javascript 锚定AJAX和SEO解决方案?,javascript,ajax,seo,graceful-degradation,hashchange,Javascript,Ajax,Seo,Graceful Degradation,Hashchange,你们都知道如何使用这些300ms触发器构建AJAX站点,以检查URL中的锚(散列链接),然后使用AJAX加载适当的页面。但是,这些锚定链接对搜索引擎来说并不重要=( 我考虑过做一些变通。所有的JS代码都是一样的,但是,这个小东西(对不起,我是JQuery的): 然后,将主体中的锚定链接替换为普通链接,构建相应的普通页面(仍然包含所有JS代码)对于非javascript用户和搜索引擎。对于普通访问者,您可以将普通链接转换为动态哈希,并立即加载AJAX内容。对于那些试图加载通过搜索引擎找到的某些页面

你们都知道如何使用这些300ms触发器构建AJAX站点,以检查URL中的锚(散列链接),然后使用AJAX加载适当的页面。但是,这些锚定链接对搜索引擎来说并不重要=(

我考虑过做一些变通。所有的JS代码都是一样的,但是,这个小东西(对不起,我是JQuery的):

然后,将主体中的锚定链接替换为普通链接,构建相应的普通页面(仍然包含所有JS代码)对于非javascript用户和搜索引擎。对于普通访问者,您可以将普通链接转换为动态哈希,并立即加载AJAX内容。对于那些试图加载通过搜索引擎找到的某些页面的用户,他们会这样做,然后访问者将继续使用AJAX导航四处移动……不知何故(记住,那些普通的direct页面仍然包含JS代码)

我只是想确定我的假设是正确的,是吗


更新:糟糕的是,当用户直接进入某个带有for ex./portfolio地址的内部页面时,他会继续使用/portfolio#contacts或类似的URL,这些URL不太漂亮,但仍在工作(我的意思是/portfolio#contacts会显示联系人).

听起来很不错……只是我建议在上面的事件中也调用300ms计时器上的回调,这样在单击链接时会立即得到结果(用户也可以转到地址栏中的链接并获得相同的效果)

这似乎不是一个好方法,主要是因为每个链接的
点击事件都会触发该功能,即使是那些不想使用AJAX方法加载内容的链接,例如指向其他网站或
javascript:…

如果您将所有AJAX-y链接放在同一个类下,或者使用另一个属性来区分它们,然后调整您在那里使用的jQuery选择器,那么它将起作用,这将是一个很好的方法,因为它不仅对SEO友好,而且还提供了优雅的降级,也就是说,您的用户仍然能够访问即使它们在不允许使用JavaScript的环境中运行,也要对内容进行加密


除此之外,如果SEO是您唯一关心的问题,您可以在web上搜索什么是
sitemap.xml
文件以及如何使用它。Wikipedia有一个值得一读的版本。

嘿,伙计,您可能想看看。它优雅地将网站升级为丰富的ajax应用程序,因此您的网站仍然适用于SEO和Javascript di非法用户

你可以看到这个功能正在发挥作用。请注意,如果网站不是Ajax应用程序,所有链接都是相同的——如果你右键单击并在新窗口中打开,它们仍然可以工作

此功能在其演示页面中有详细说明。您还可以在该页面中找到其他示例和使用说明,以便:


总的来说,使用它非常简单和直接(特别是考虑到它允许您做什么!),而且支持非常好。

是的,为这些链接指定一个类是绝对必要的。
$('a').live("click",function(){
    var lnk = $(this).attr("href");
    document.location.hash = lnk;
    return false;
})