这可能会产生问题,因为您最终会将页面的小碎片放入索引。
如果你可以避开它,用简单的旧的DHTML“伪造”ajax会容易得多。
<div id="content-display"></div>
<div id="content-1">Some content</div>
<div id="content-2">Some other content</div>
<style>
#content-1 { display:none; }
#content-2 { display:none; }
</style>
<script>
displayContent = function(contentId){
$('#content-display').update($(contentId).innerHTML);
}
</script>
现在你已经得到了所有的内容可见,搜索引擎,都在相同的(正确)的URI,但对于启用JavaScript的用户,它的作用类似于AJAX的解决方案(但速度更快,初始后加载,这有点慢)。
现在,如果你有一个TON的内容,你必须考虑更聪明的东西。但是,如果你的所有内容相对较少(不要忘记确保你的服务器对内容进行了gzip编码),那么这种设置是可取的。
否则,如果您拥有数百千字节(或更多)的文本内容,则必须使用更复杂的技术。你最初的想法是非常正确的。
<a href="/some/page.html" onclick="$('#content').load('/some/page.html')">
LinkyText
</a>
通常会做你认为它会。当然,问题在于'/some/page.html'最终会在搜索引擎中出现。你可以尝试做一些棘手的服务器端的事情(比如检查引用者并重定向回“主”页面),但我不相信这不是潘多拉的盒子。
希望有人会与解决这个问题的另一个答案一起。如果我想到什么,我会编辑这一个。
好吧,如果我使用site.come/content/somecontent风格呢?我可以使用JavaScript更新吗?这样,无论何时我动态加载内容,我都可以更新URL以反映显示的内容,因此获取该内容的永久链接也更容易? – 2009-10-05 02:44:51
您无法更改地址栏中的位置。如果你这样做,它会导致该位置加载。您只能更改散列符号后的地址部分。 – Joel 2009-10-05 02:48:15
那么,坚持使用AJAX这些评论中的小部分信息会更好?看起来你发布了评论而没有重新加载页面?对我来说,我认为漂亮的URL比动态加载内容页面要重得多...... – 2009-10-05 02:51:06