【问题标题】:Should i use Javascript redirection from crawlable to ajax website?我应该使用从可抓取到 ajax 网站的 Javascript 重定向吗?
【发布时间】:2012-01-20 22:27:15
【问题描述】:

我正在开发一个 ajax 网站,我知道将所有链接保留为普通链接(即“cats/”)是一个很好的做法,如果启用了 javascript,请将它们 ajax 化(“#cats”)。我的网站完全可以被搜索引擎抓取,并且所有页面都被编入索引。

我的问题是:当用户通过谷歌登陆页面“www.example.com/cats”并且他的浏览器启用了javascript时,自动将他重定向到“www.example.com/#cats”是否安全" 使用简单的 javascript 重定向 (location.href = ...) ?

【问题讨论】:

  • 如果 /cats 和 /#cats 不会导致不同的内容,则无需这样做。通常,哈希值适用于 /animals#cats 之类的内容,其中 #cats 将用户带到 /animals 页面的猫部分。

标签: javascript ajax location redirect


【解决方案1】:

我知道将所有链接保持为普通链接(即“cats/”)是一种很好的做法

是的。

如果启用了 javascript,则对它们进行 ajaxify(“#cats”)。

不,使用片段标识符有serious drawbacks。将它们保留为普通链接或(如果它将显着提高站点的可用性)使用pushState and friends 对它们进行 Ajaxify 是一种很好的做法。

使用pushState 和朋友会让你的问题的最后一段没有实际意义——因为你只有一个 URI 代表内容,而不是两个。

【讨论】:

  • 重定向我的用户的唯一好处是只维护一个页面(网站索引)来传递 ajax 内容。所有其他页面只是自动生成的静态页面。
【解决方案2】:

不要这样做。它会导致页面的 HTML 被加载两次!无论如何,普通用户并不关心地址栏。

【讨论】:

    【解决方案3】:

    当您的页面加载时,使用 javascript 检查 url 是否存在 /cats 只需运行您的 ajxy 函数,无需重定向。

    【讨论】:

    • 你的意思是当用户登陆页面 /cats 时,他必须留在这里并且必须使用该页面的 ajax 完成导航?这是否意味着我的所有页面都必须基于相同的模板(有一些静态差异)?
    • Url 可能被污染:www.example.com/cats/#dogs... 所以 HTML5 pushState 是一个很好的解决方案,可以让 url 更简单并删除 # :www.example.com/cats/ #dogs 访问 www.example.com/dogs。但我必须在 www.example.com/dogs 创建一个真正的静态网页,以欢迎登陆此页面的用户(来自书签、外部链接......)。我走对了吗?
    猜你喜欢
    • 2013-02-02
    • 2020-01-29
    • 2016-06-23
    • 2023-03-05
    • 1970-01-01
    • 2016-04-18
    • 2012-01-22
    • 2011-03-16
    • 1970-01-01
    相关资源
    最近更新 更多