我一直在研究一个使用 Backbone.js 路由器的项目,所有数据都是由 javascript 通过 restful 请求加载的。我知道无法检测服务器端是否启用了 Javascript,但这里是我认为使该网站可索引的场景:
我可以为 sitemap.xml 上的每个链接附加一个查询字符串,我可以放置一个
<script>
标签来检测是否启用了 Javascript。服务器使用可索引数据呈现此页面,当用户访问此页面时,我可以手动初始化 Backbone.js 路由器。但是问题是我需要执行一个 sql 查询来在服务器端呈现可索引的数据,如果访问者不是机器人,它将导致额外的负载。当用户在某处共享网站的 url 时,它不会是可索引的页面,网络爬虫可能无法识别该 url 的内容。网络爬虫搜索页面中的额外字符串可能会让用户感到厌烦。我可以从他们的用户代理在服务器端检测流行的网络爬虫,如谷歌、雅虎、必应、Facebook,但我怀疑会有一些我错过的网络爬虫。
哪种方式看起来更方便,或者您有任何想法和经验来制作可索引的此类网站?