我有合法的理由去做我试图解释的事情。我有一个现有的网站,比如说abc.com,它有常规的页面,等等,一切都是用php写的。现在我想要AJAXify的网站,即当用户点击一个链接,它应该获取使用AJAX的链接,并替换页面内容。这是最简单的部分,我可以使用jQuery get函数来实现它。
现在,当用户为页面添加书签时,问题就来了。我可以使用散列标记来指定用户是否在另一个页面上,但是否可以在调用页面时使用PHP直接获取新页面,而不是使用javascript再次获取新页面。
你能给我一个关于如何实现上述目标的大纲吗?此功能类似于Facebook的功能。
感谢您的宝贵时间。
发布于 2009-07-06 20:59:09
这是一个相当简单的过程,(1)解析哈希标签,(2)像往常一样通过Ajax加载内容。
如果在用户单击页面时加载更多内容,只需确保始终正确地修改散列标记,以反映页面上的内容。
这是可以使用的a quick example。单击一个名称并记下哈希标签。相关的Javascript如下所示:
// Go straight to content if it's in the hash.
$(document).ready(function(){
load_story_from_hash();
});
// Call this function whenever user clicks on a hash link
function set_hash(hash){
window.location.hash = hash;
load_story_from_hash()
}
// Actually load content based on the hash in the URL
function load_story_from_hash(){
var hash = window.location.hash;
hash = hash.replace(/^#/, '');
if (hash) {
$('#post_container').load(hash+'.html', {}, function(){
$.scrollTo('#post_container', 1000);
});
}
}发布于 2009-07-06 21:13:48
答案是否定的,你不能得到URL散列服务器端的值。参见How to get Url Hash (#) from server side。
您必须在客户端获取散列值并发出额外的请求。
发布于 2010-08-29 01:34:20
jQuery历史记录是我的首选。它可以在这里找到:http://www.balupton.com/projects/jquery-history/提供跨浏览器支持,绑定到哈希表,重载哈希表,等等。
还有一个称为SEO的Ajax扩展,允许它轻松地将您的网页升级为适当的Ajax应用程序,而无需进行服务器端更改和保留对jQuery和JS禁用的友好:http://www.balupton.com/projects/jquery-ajaxy/
这是http://wbhomes.com.au/和http://www.balupton.com等网站选择的解决方案
总体而言,它们都有很好的文档记录、支持和丰富的功能。他们还赢得了一个赏金问题,How to show Ajax requests in URL?
https://stackoverflow.com/questions/1088987
复制相似问题