我有正当理由去做我试图解释的事情。我有一个现有的网站,例如 abc.com,其中有常规页面等。一切都是用php编写的。现在我想对网站进行 AJAX 化,即当用户单击链接时,它应该使用 AJAX 获取链接并替换页面内容。这是简单的部分,我可以使用 jQuery get 函数来实现它。

现在,当用户为页面添加书签时,问题就出现了。我可以使用哈希标签来指定用户是否在另一个页面上,但不是使用 javascript 再次获取新页面,而是可以在调用页面时直接使用 PHP 获取它。

您能给我一个如何实现上述目标的概要吗?此功能与 Facebook 的功能类似。

感谢您的时间。

有帮助吗?

解决方案

这是一个相当简单的(1)解析散列标签,和(2)中通过Ajax象通常那样的内容的过程。

如果你当用户点击网页上加载更多的内容,只是一定要始终正确修改散列标签,以反映什么是页面上。

下面的一个简单的例子来玩弄。点击一个名字,并注意哈希标签。相应的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);
      });

   }

}

其他提示

答案是否定的,你不能得到URL hash服务器端的价值。见如何从服务器端获取哈希网址(#)

您必须获得哈希值的客户端,并做出额外的请求。

jQuery的历史是我的首选。它可以在这里找到: http://www.balupton.com/projects/jquery-history / 提供跨浏览器支持,结合散列,散列超载,所有其余部分。

还有一个Ajax扩展叫jQuery的Ajaxy,使其能够轻松地将网页升级到一个适当的Ajax应用程序,而不需要服务器端的变化和剩余的SEO和JS-方便残障:的 http://www.balupton.com/projects/jquery-ajaxy/

这是因为 http://wbhomes.com.au/ 和由这样的位点选择的溶液 http://www.balupton.com

总之,他们都是有据可查的,支持和丰富的功能。他们还赢得了奖金的问题在这里如何显示Ajax请求在URL?

那么您可以使用这些工具之一或自己推出。使用 window.location.hash 以及其他技巧。

我最近写了一篇关于这个具体问题。这篇文章是教程的方式。使用散列改变事件时,IM表示如何将参数添加到URL,这可以触发与参数无限数量的Ajax请求,因此在一个相当可扩展的方式起作用。

您可以找到更多关于它在这里 HTTP ://andresgallo.com/2012/06/08/ajaxifying-the-web-the-easy-way/

第一部分介绍如何到哈希链接响应,而第二部分介绍了如何在哈希URL的数据发送到一个Ajax请求,因此,让你做你想要的哈希标签的几乎任何东西在您的网址。

要做到这一点,最好的方法是有根据加载后的URL部分所有其他网页的index.php一个。例如:

http://www.example.com/index.php/reports /雇员/ hoursWorked

在这种情况下的index.php将运行,它可以看看什么东西被要求为是工作报告的时间,并加载内容。问题是,如果的index.php然后加载,使用AJAX毕竟其他内容,在浏览器的URL永远不会改变。

周围这个问题的一种方法是把一个“链接到该页面”,其中包含的网址用户书签这种形式在每个页面上的链接。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top