在不重新加载的情况下更改url并更新页面内容


change url and update page content without reloading

我有一个页面,其中所有内容都由php函数调用。调用哪个函数以及页面上显示的内容取决于页面的url。它从url获取数据并进行更改。功能示例:

switch($DO){
    case 'edit':
        editorProfile('1');
        break;
    case 'Add':
         addpeople('1');
        break;
    case 'about':
          show_about('1');
        break;
         case 'jobs':
        show_jobs('3',$details['cid']);
        break;
    case 'photo':
         show_photo('3',$details['cid']);
        break;
       ?>

获取变量

   $DO=$_GET['dothis'];

html

  link 1 <a href="mypage.php?dothis=edit">edit</a>
   link 1 <a href="mypage.php?dothis=add">add</a>
    link 1 <a href="mypage.php?dothis=about">about</a>
     link 1 <a href="mypage.php?dothis=photo">photo</a>

目前,它运行得很好,但页面会被重新加载。我想要一些改变url、更新内容但不重新加载整个页面的东西。

我知道这可以通过以下方式完成:

 window.history.pushState("object or string", "Title", "/new-url");

但我不知道如何实现这一点,也不知道在旧浏览器的情况下需要做什么更改(在旧浏览器中,如果不支持,页面就会重新加载)。

查看我使用它的智能链接,觉得它很神奇。https://github.com/igor-alexandrov/wiselinks.这是一个jquery ajax库,可以处理任何你可以扔给它的东西。我在大多数网页上都使用它,因为你可以创建超快速浏览和seo友好的ajax网站。我认为它应该对你需要的东西也有好处。它将在不重新加载页面的情况下更改浏览器中的url和标题。

您试图实现的目标无法用PHP实现。它每次都会重新加载。

您必须使用Ajax异步发出请求,避免重新加载。

http://www.w3schools.com/ajax/

关于URL,我不确定是否可以在不重新加载的情况下更改它,即使在Ajax中也是如此。