【发布时间】:2016-03-13 17:22:12
【问题描述】:
以下网站是使用 history.pushState() 的可抓取 AJAX 网站(HTML5 + CSS3 + AJAX)的一个很好的例子:
(背景见https://moz.com/blog/create-crawlable-link-friendly-ajax-websites-using-pushstate)
但是,本网站假定动态内容可以在页面加载时呈现在服务器端。比如直接登陆http://html5.gingerhost.com/seattle,西雅图相关的内容不是通过AJAX加载的,而是已经在页面中了。
假设内容只能通过 AJAX 调用加载。我怎样才能使这样的网站可抓取?
我的具体目标是让这个网站可以抓取: http://code-exercises.com/programming/
目前,所有的编程练习都是通过 AJAX 加载的。我想要编程/简单/练习一号。
我的网站由 NGINX 实例提供服务,该实例提供静态内容并将所有 AJAX 请求转发到 Tomcat 实例。
【问题讨论】:
-
"我们假设内容只能通过 AJAX 调用加载。我怎样才能让这样的网站可抓取?" - 不良。这是一个错误的假设,通常归结为不想付出努力。
-
“我会考虑渲染内容的解决方案……服务器端。”矛盾“让我们假设内容只能通过 AJAX 调用加载。”
-
@Quentin 目前我的内容只能通过 RESTful 调用获得,我会考虑呈现此内容服务器端的解决方案,但我不知道该怎么做。我会考虑在服务器端和客户端呈现内容的解决方案。
-
选择一种服务器端编程语言。复制客户端代码的工作。
-
@Quentin 我明白你的意思,但出于性能原因我仍然想使用 AJAX,类似于在 html5.gingerhost.com 上所做的事情
标签: javascript jquery ajax html