PJAX实现
一、浏览器历史API
浏览器历史就像一堆卡片,如下所示:
aaarticlea/png;base64,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" alt="" />
在HTML4中,我们已经可以使用window.history对象来控制历史记录的跳转,可以使用的方法包括:
方法 | 描述 |
---|---|
back() | 加载 history 列表中的前一个 URL。 |
forward() | 加载 history 列表中的下一个 URL。 |
go() | 加载 history 列表中的某个具体页面。 |
HTML5引进了history.pushState()方法和history.replaceState()方法,它们允许你逐条地添加和修改历史记录条目。这些方法可以协同window.onpopstate
事件一起工作。
方法 | 描述 |
---|---|
pushState() | 有三个参数:一个状态对象、一个标题(现在会被忽略),一个可选的URL地址 |
replaceState() | 操作类似于history.pushState(),不同之处在于replaceState()方法会修改当前历史记录条目而并非创建新的条目。 |
popstate事件 | 每当激活的历史记录发生变化时,都会触发popstate事件。 |
如果要做浏览器兼容,可以下载History.js解决。下面做个简单的demo:
<h1 id="number">1</h1>
<a id="forward" href="?num=2">Go Forward</a>
var link = document.getElementById('forward');
var num = document.getElementById('number');
link.addEventListener('click', function(e){
e.preventDefault();
var myNum = parseInt(num.innerHTML, 10);
num.innerHTML = ++myNum;
history.pushState({count:myNum}, null, '?num='+myNum);
document.title = 'Number'+myNum;
});
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUwAAAChCAIAAAAjoRHgAAAc+0lEQVR4nO2dW3Ac1ZnHm1SqUnnN4z5s3vOUrKtSkBdSi+2lwsg2IbbAwYJIKuEQkCEmM7FJlWsrgAKU13jGiIBtCIagJQFNCDdjB4ixLc3FtlAs2cBiuud+6enr9MiWhWf24Vz69G1mdJfa38+tmdPnfOc739fd/z7dPSOZqxm1Wg294NdazTBqtZpBV80KZGsYNcPexbpKmg3Wl2EZwTDNDOzSUmcYZCSjRgbEIaHO1KFhMBEYJHCDqZlVarWpqXNjYx999FE6nS4AwOqHMwzDMGqGFfu6td6rtXnf9g2QkYeZd++a68qsU5uamjpx4kQ+n7969WoDAFY/XNWoVqtG1TCq6KdqGNVq1TCMqlGlGAZeMUgRW1WNqlHFLti+VdObgasZQ9JqoHaDODLIGPTNYMc3iE9zaNqP6UIzmVtqtampkydPSpK03LsGABYGrlqtVvVqVa9Wq1VdJ4e+Tl+qZpWu68REp3W4YHm3drShWwys9qSAB9JdBnD1SPuZ7zp1PcvUarXaqVOnZFle7l0DAAsDp9up4lcsE1zGDVXdLOt03axCSmEMqTOLc7OJdU6aaCtrR52YrdY4qA1RqzldW3pUjeapTYHIAX/BaZqm6Zqma5qm67qOyrpu/uACnhV1HVtqmq5r1FzTkR+sJvSuacQCVWFTMgDxoGvValXTdb1a1XTqDVtQp3QQskrLZAQSZvLMmccff7yrq+v222/v6up64oknzpw5W0XOq/rTTz+tV6tsahqNTtc0Ta/VjFOnTyuKYttSMzMzr7ihaVrLrTw6wHGdQ4XF2YWs89EBjuMGRhdnoLkinozs2RM5KS53HNctnNYEFb8pirJ79+4f/vCH4XBY13VNRW2qxcq7v2e1inU6MjLyxhtvxGIxXdNtrW24w+i6ns/nd+7cedNNN61bt27Dhg2bNm3asGHD2rVrb7zxxl27domiuG/fvjVr1pAU3McwDOP06VNOkRuGceTIK2zN1NTU4ODgkSOtdb6aRd4s9otDe/bsGbrYwsNCipwZUTwZ2UNoGcOysRKi5FRNxdACWtM0VCUr8iOPPLJ27dqNGzdu2LBBpw2qqmnEUtM04kNTVQ23mM7IP02ztaiqqqrvvf9+bHT0/fffHx0dNQ0YQ1SpaWRI1WKDXkqlUmdn57p167Zu3bpt27a+vr6Hf/1wX1/ftm3btm7dun79+o0bN65bt+4nP/mJrutMT+RVo8EbhnH69GlVVW1bSlXVl18+0mg0rl6dQUutVhscHGw0Gi+/fKS5zlexyAtDnZ6xXxxa6hmajiiejNCRkY5WpM4vDlmjXJ7rGU5RTC0piqooqqooiqKialmSgsHg+vXre3p6urq6Dh8+jPSA2xX8o6J+qqKa9aqqKoxzRTXrFNpdUVRNUy9MXojH4+Pj4x988MHoaEzVNMUcg/RWVEVVFORSwSMiT4qiqqr2212/ve2227q6uh5++OF//vOf1Wp1auqyrusff/zxQw891NPTs23bNvSKzxQ4VRomHq1qVEdGRpyiVVX1pZf+1Gg0pglU5I1G46WX/tRE574U+dIftZ4jLv3ZZg4sn8o5xRuJKLy3t7e3t/fgwYPVarWJ/ZzRNO3ChQvxePzTTz89evRoLBZDZ4P2SSaT69ev7+7u3rFjRyaTYeOsVquHDx/u7e3dsWPHgw8+2NXV1dx5tVodGRnRdd22pVRVffHFlxqNxpUr02ip1WrPMLz44kszMzOuW9kh8tEBzsQhysJQJ2ljejG1lj5uImf82703GdpsQv4spnapiycj5vSJVeZ+bWo/ulkramafjl2mZ8uILOxdAylfHGojEpcs9gxdZOIbumiNdz6XC57hLzqcrCgyA1pTZFmSpN/85jdI4X19fYzC8YyvKOgNKUYm/Yg3RZYVWVEUxaxQcIWqmNOygq8bNF2fnJxMnkmOjY0dPXo0HoupiqqYEVGPxJfpU1YU5aknn9yyZUt3d/fx48c1TcMmiqIoSjgc3rRp0/33379jx47+/v5t27apimpN2RxCkeUmIj906HCj0ZiauoyWSkXK5fJ0OXTosGEYrlvZIvLRAYtgbKtIylR8haGhUWxms7H4s4ic6d98LMuq5SKADus5k1tvx4mkXCVrlRZzBWttsfRxmZu9HgBcHNpjcW+NxNLajsipgalt1zxmyXI+feRkWZYlWZZlWZJwUZIVRXl096NI4f39/Q888MDmzZtvvvnmNWvW/MDKmjVrwuGwqURJkrA7WSKOmbISi8XecPDmm2++++67J06cOH/+/MTExNmzZ4++f/TMmTPUKQ6LuJFkS9SKIj/wwAM9PT2/+MUvKpUKbVUU5fnnn9+4cWNvT8+DDz6IRN7X16fIioR84lglyfQmoQeB1WrVtqVUVT148FC9Xq+5Ua/XDx485LyTRzA6LAx1uk6gqKrZHTCDxcwhcrY/a9l0aJdG51AmNhFahdZoWNTT5Pi2NtE1t0nP9ZLcOd87ImGHaEfk9qy8LwSYiwULlsCp0TI+M+CQLBHkXZJl+dZbb+3p6env76fauOeee+628vOf//xnP/tZR0cHkkdLFFl+5513RkZG4pQEfk8mk+Pj4xOERCJx7Ngxq1uZvtrilWV5+/bt991333333acoCttBr+pTVmq1mke0uFLX9dHRUeecrKrq88+/UK/XyZfpLEu9Xn/++Rdai9xVM2ZzOzfvZLb2FLlFqrMa2uvWwd7LIRaPiRdVeYmcHP+Ok0XEKXFXH17nAqfMZiFypq/D/3zu/e1njCWEkyoVSapUKpJUkSoVVKjIsrx///7e3t4d/fjffd689tprsiyjzhXkRZKw04qEHUuSJFVkWZ6YmIjFRmPxWDwWi8djsXg8Ho/F4rF4PB6Px7DEz0+MjIxMTk7KslwhoUkV5BkFKKGx0Issyzt37ty+fXtnZ2exWKCWrqmhFxQZjc+0kipI5LVazbalVFV97rk/1ut18r0Cy1Kv15977o9titz1Nnlg1Hs6bbD3xwOjTmG3LXLPoRvsTb/9SYBN5E5xNb26tl+uszOeo6O7FtzvZ90u4FesyJfxip0TxYormqZFIpG+vr7+/v7t27cfOnTIMGq1Gp4O2YlR07RKRRQrolipoJeKWPHwKqqqSr5/Rr45o+uarquaNjkxkUjEz09MxGKxCxcuqIpSqYgV6okGKrIrlUpFlGX52cHBnp6eLVu2/PWNNyQk44pIjdBsjyZw0wf1ZUZfqVREXddjsZiryJ99drBeryuK5lzq9fqzzw7Odyb3vFq3z/BzFrn3TE7AUieVLr1ctNX2TG43tK077oM9R/RiCUXe1uV689iWBk7EVMQKeiPrUkVVsc5/9atfbd68eWBgAElHrIimMe5HKiq02kaFVlVod7OmEovFPvr4o/Hx8dHR2OTkpKooplfqwc0v6j8+Pt7V1XXvvff+9Kc/vXjxoiRJ1FKS5PMT5zdv3ty5ZYsgCGbcIvNqhiJquhaLxaampmxbSlXVAweerdfr5PmiZanX6wcOPLtY9+T2To4nZu2IvMXQ9uHYTpaI3KYz5z25u7TssrH2I612Lc5mAm0qcncZXw8zuVgul8VyWRTFslgWy6hULpfLYkVUVTUSjvT29vb09Kxbt+6xxx6TsB6QBelRFlF/sVwWcYNIm7CVaDoum/ZiRZJOnz79zjvvnDlzZmTk9OTEhKIoZRE1iyIdBodYpt5oyKIoSrK0b98z3d3dd9xxx22BwGuvvZbL5yRJymazr7zyyq233rp+/fpbbrnlrb//vWK6xH1RkY6g61osFrt8+bJtS6mqGg5H6vV6Bd86WJZ6vR4OR9oQufsjblNntltj/JjbYoSv3Gct8qZDF4YGLPXWPqZL9yPV+lzaJhf7TN7saXaLshW3luYid3nYvogiF09Gmn4muFRwpXK5VC6Xy8w7gyiKqqqGw+He3t57771348aNlUqFNJYY65Lt3ULJu6lcFsXKe++9m0gkTp86PYEU3g4li1M0De/evfuee+7ZsmXLzTff/KMf/eiWtWtvuummH//4x1u2bNm2bdsjjzxSKBRaOtY0LR6PXblyxbalVFXdvz9cr9dFUXIu9Xp9//5wWyJv2D7ydkzcbCtttH52PpfL9VZDM5+KW0Nin/R5fNiLj37XD6fdHqHTJ25UNp5Ptpt8vDwHkdu/Z7rY9+TsJf2yPV/nSiblUrlcLpVK7E+pVC6XFUU5ePBgX1/fK0deEcVKGVUzHak1U1vGHktsPXovmxalkiiK58+fHzk9MjExqchy2WZOOpTZFdMHbS1VRLFYLEYike7u7rvvvnvr1q2dnZ133XXX3Xff3d3dMzg4iK7G2dTM+MulcqmMxtU0LR5zF/m+fc/Uvdm37xkvkfuGZp9Vex798/oWyHLdx/oJrlQslkqlIllQuVQslkg1aldV1TCqiqKUcCsyoL1pR/wPUyQldoBSsVQsss5lWVZURZJl1rUZj+kNd7a8FPGQxVKpVC5rqjZ54cKRI0cee+yxRx99dGBg4M9//vPnX3yhalq5XHZNzXRdKpWKRU1V47H49PS0bUupqvrEEwO///1jXsvAwB/8LnJPLTcV+Xw/eFrxX1hd6XClUtEdr3pLS8m12r22XVr1KDlWS7S2VCziSw+N/LYquv5vc4RSsaiqajwed/7tJ8MwBEG4dOmS4Aaq9/rGm+9ppkXQ6XLDFYrFYrGA/xXRCioVCoVCEf8puCIqFYuFArKi78UiLmE3RWRdxF1MV6aHYtGsLhJb0pl1TXoRV9QBWlCReMROScjEzaxT01Q15ibymZkZwzBUbwzD8Pruuu9xEzK9+QWFLzNcIV8oFAr5QiGfLxTyhXye/o3HPFMuULOCva41Vj95e68mXvL4NV/IWwzzjk4uTvJzSw3N5NetXAH/weUL+Xw+X8hTLSEBoJU8as2jasaK2OAmZEVs84W8pYrWO1xSBdIm7J1xhPSYZ7RqBkSc0IEKtFBgKmeVmqKoZ84kr1y5Uq/Xl3vvAMACwOXzuXwOv+Tz+XwO/6A32pJjanEBl3P5fC6Xy+dzObY2j+tz1CnxzZjlcVfrsLSJGQ35Z4bO2QxztjBzZlazTE2SpM8///zTsU+np6e/BoDVD5fL5XNYjFiuOQoSISqx9bQ9lyc96YrZZjXNU3u2v1lFO+MxGUeme6v3PFuwh8XYzy61fD4vy/IXn3+RTCYTiUQ8EY8n4gnmd2nMAl5FjdbaBFNFOycS1v6JuOne6j3BFixurfaJRIKMz8SToCV7f+ojDqldP6lxuWw2l83lctks+snlclnziM9ms9lcji64MZvLZXETaTO9ZLO0P2onZtg9Mc1liS9zINyLemYx3eZMB1lSzpEw8CA4lLmlls/nJUlq8TflAGCVwGWRMLLu700KtMIs5+hrztlK++Us9jm7HTl5MLU5Fy/ZJuTcViA1e39IDYft99S4TDaTyWQz2Uw2m81mMtlsJpPJZtEqfsPrtIybMhlkT3rQvrgON+LO2JLxmKFDZtkBca+MZTDSkwxJI8qYoZEkmO6QGqQGqWW5DHKAu7FkbZXWosXaYkZGMGvxlrN6wrHRrWQdI8sa2nqSdVvAWdYyy75DapDa9Zwal0ln0pl0JpNOpzPpTDqdSWcymXQaL5k0Mk1jq0w6nSZvuDWNO2dQ9wzxgtrT6Qyqon4yGdM0g0a29c3QaMy+aYuPNO6ZsbYQj2zIkBqkdr2nxqXRkOgnTcdPm/3TabaVWTWrM2ZLmo2a7ZGxGOARaU6smZmNGVyGaU5bYCOzdoLUIDVILZPOcJb4Uql0OoWLtoaUtSZF7clKytIplUpZbIkhLqfSTE/TjoydstXZhkG8PZK/fa/+n48bLZfb9+pvj+RWUWppJqQpQ6SLJPJoKeU/YzNYpanhthRxnbKGD6ktUGociSSVTuHC1I3/gRZkSVdTqVQqlbatkjQwqJimbbQxbanAZmmrMY6KNKSYZuSZ9k2n06l0mwqnOje3XorZI2QcEjtZW9bUqAGr8GPHogcPH6AiL+Qm2b226lKjwaNOOHjSDKktYGpcygErYyFlE7l9tRWC7b1tBI9XE5uM1z5hHDg2PXh8+tPU19fqjWjyamjoMmuwUJHN20Hr1KjdlCEePHxg1+927vrdzq7urV3dW1F51+92ZtMTCx7ZvB3MIjX6NqtBILU5OOBQrYCaBEEQmqlaEARmVRBwD+RBELCPFHInpAQhGuJCUWSDjFEEyUgH50koam4hgUTFDpBC/mwifz129bl/TCO1T2avfXxhxmZA4xPsW4MOIqCw20rN7GNJjR4BQiqVQvmnUqbj9lITyFBU5FTeVOrZ9AS715Y8NZwM2cdtpBYNsbu5IxJB6x0dHWTHC6lkpCMUTQkpwf0QCUWXNLU57jVLQKa94NTa0uw1joRGSAn0dydR8OaqIAiCwK7S/EgAQop6wURDXEckKVi2gpBKRjo6IklslYx0hKIkfLSTsSMmLDSQxbdNw/pU/fG/XUHlJ9++cmWmYRc5DS7FumOPJnxCai81sqOtqWGDFE2fCIDs1HZSo6AL9dHEia7urWMTiWx64pf//eRDiQZaOj9pBI7Xvv9e4zuvX/3O61cdqdF3a44Lkxr1gnNsnVoyEook6WtHKCoIQioa6ogkyekQx9oRSaYsJZJDKOpIjYlnwfYa9TLHvWb1Yq2zag2/u++1BUuNs0XG85Y18sILrjireY9TsHn+TgqCkIx0BCJJ7J7sb0EQsOJdRuSdazYNq7X62+fw7P3wq5cF8ZrNwCW1RKSDKFsQBEGIhvAZyT01dsVjixBDvOXooetoa5oahT5pQ7P3wcMHnjoreYkc6dy+15KOHAMkx3mlxjhE7ttILRoKRZORUCQaCUWSaGtHQ4FIJBiKMluKOSCiIS4QSQpCNIRymMsBOY/UHG3eqXn5bDbivLXm6cwKJwi8wPP0ReD5HxzeihZU+d2nDbTwAi8IgnqEQwtP/BLvPHKVDAeCw6iMarF3nscGPI/E5X25LiAr1J8pkrF4nhccIt9/dHp6prHrfy9v3Fv7+9mZ+1+ass/kPLMdUaQdXCjK48SZVLxSY7LwTI3HMaPO0RAXjKJa3gy+ZWoCL6DhqMiPHYuiC3VW4R9+mf3wy2zgeI0RObMrBZ7kuBip4QgFPhriQsNtpJYIB2w7OhIJhiOhjkg03BEKBjl0drcekIlIgOM4riOcdKS2eHuNpjbHvUZc0DrT0KY16wG5WKlxPI+jJuOYIkdOTJHzPC/wjMixE5I13iiJSEdwmAzADwcDkSQpcsFhNH4iEghEEthDItyB6nle4BPhjmCUREQ2vSVquu58hP7LF6fCH0zXGw163W4TOXWLhgoEIgnqE29fMhY/HDQPx2CUbEmeHw6x5yNzC1D7QDgS5DoiCZ7n+eEQzpkXGIcd4UTz1HCYRORfXTpH78Y7P2mg5amzEnrG/tRZCSn82y9kyWGG9wifCAcC4YQ9NRpzlMkxNMwze43JfdgMkskxHOQCYTNHnIG5cXCjPbVoMNAR4LiOMN7wwnCoI5zk8dGRROeBQHg4jGeBANqOSXqCCA6bB7LLXnM5IIluaJu5btn+Ak99Me4Z2fAtDki618wTgcWTwBYZM96+1xY6NY53wIic520i5xmRe5AIB4LDw+QQQEcZzzMaJzZ8y5XmuH5Utn7A0Kbq59Nf376v5rhct0JjRMNajunhIGc28sPBdupJ3IlwgBrRpO2DtZlkKf/Z2ETimzu/HE2cOHYsOjaRQJfogeO1D7/MotavLp0zRb6Sc0R1iXAwnDCbh4Ooj3l4kBqmm7UCmCUuWqX/U3c7q07Q3qJ7hux5VuO848qNZY4i3/365b/Erg7+Y/pPn0zLRj0jXdsSrrUrckvsziZyTLZZb64yDq20ediW8p99c+eXaMmmJ7Lpie+/1/j+e43A8VohN/lmYuyps9JXl84Fjte+/UK2hciXOUfnPg8Ok3MFarOK3P0YaffgABg8J+Q5Y+4j9hRtPT3bFT/vmfzgR9Nnvvr6v/6AVzvDtVTl2jtjM81E7qKAJgIgZ6p26l0FMKfZiCocLYXcJBL5U2elbHpiz9GxwPHaV5fOvZkYcxf5isoR7dtEOBhO8IlwIBgMcsFhdGoIDsNMvni0vly/+jcOLa6rDujOsuwb646zKnkhRJ6Trw0en2ZrDhybPna+ucgtF53W4B2XrOYB7Vnf6lLWPK8NB2cxIVGF8zx/w51voStz9HHaV5fOoWVsIvG9l4Vv7R1f0Tna5uZml+vD4WDA/WIvEG57ywGYhRa5ZY4m2JRrO+UvhMg/+WwmVbl21wF8fb7+D8bo/33df+Ryc5HjAd2vMN0ePjWpN/1YHkoFrbqYwzXnN3pPfnPnl9/oPfmN3pM33PnWDXe+RWfvda/+a92r/9pzdGxsIrHn6JiryFdQjvaZ3FPknP34gJl8XiywyNH+aHbLzV6YIci+DziOweawAt6wt/bX2NWCUr+Yu/bhxMy7YzP9L1sU7inyxWCuF+euIHlThaPlq0vn1r36L3SJ/u0XsqOJE6OJE54iXwzmkKN9Jg+j9WAwyJ4W7FfrIPJ5s/AP3paMWf2Cyqa9+mLGwl6A2Gei+WPT+bf2jn9r7zhVOFpFywIO6mBxcwQWj4V/8LZkvHUqu6k9nd/xP/pbp5wPpRYUZppavKP/hjvf4nn+ey8L3z3I0+XfBy+gZZEGNVmSHIEFZxWLHACAdgCRA4DPAZEDgM8BkQOAzwGRA4DPAZEDgM/h/vKXv8ICCyw+Xrjl/r+TAQBYXEDkAOBzQOQA4HNA5ADgc0DkAOBzQOQA4HNA5ADgc0DkAOBzQOQA4HNA5ADgc0DkAOBzQOQA4HNA5ADgc0DkAOBzQOQA4HNA5ADgc0DkAOBzQOQA4HNA5ADgc0DkAOBzQOQA4HNA5ADgc0DkAOBzQOQA4HNA5ADgc0DkAOBzQOQA4HNA5ADgc0DkAOBzWoq8MNTJ2egcKixFaAAALARNRT46YBM1rgChA8DqwVvkZAofGHWtBp0DwOrAU+R00raJnGkBlQPAKqC1yB1aNudyh/4BAFhxeF+ue07lIHIAWE3M/iM00DgArCpmLXK4IweA1cWsRG7ep8MkDgCrhbZEboobBA4Aq43ZXa4zX38DqQPA6mAO3133/gQdAICVx5x+QQVkDgCrh7n9FhqoHABWDfMUOagcAFY6niKnz9jcPg8HkQPAqsFL5MynZk6Vw2+iAcDqobXIXXQM33oDgNVD68t1xwV50wt5AABWGM0evLk8Q4cLdQBYbbR6uu7yJ95A3wCwmoC/1goAPgdEDgA+B0QOAD4HRA4APgdEDgA+B0QOAD4HRA4APgdEDgA+B0QOAD4HRA4APgdEDgA+B0QOAD4HRA4APgdEDgA+B0QOAD4HRA4APgdEDgA+B0QOAD4HRA4APgdEDgA+B0QOAD4HRA4APgdEDgA+B0QOAD4HRA4APgdEDgA+B0QOAD4HRA4APgdEDgA+B0QOAD4HRA4APgdEDgA+B0QOAD4HRA4APgdEDgA+x1Pkm//tabrMzTXrYT5+FokVGBIALAbuImeP/vkowdZ3pYlqpcUDAIvBEol8ZcppZUYFAAuLi8gX8NAHkQPAsjNrkc/qHruJsbOJXXWWaWBevVr6mVsKALDamZ3IZ3uP7TWTN1m1ydXVSTtunX6alwHAr7QQuXOS9LJ0ZW4ib+mknZnZNbYV/iAQABaD1jN5E+W0L/I5D0FrnK/N+4LIAQAxu6frK03ks/Izh/gBwAesApHPLZ6WQ8ODN+A6ofU33rzq21F4E7MmT8Vdn4e7lp29nIvX0A3QOXB9AN9dBwCf4/7g7bpaln6jA8BSAjM5APgcEDkA+BwQOQD4HBA5APgcEDkA+BwQOQD4HBA5APgcEDkA+Jz/B3jQw+zRvqhyAAAAAElFTkSuQmCC" alt="" />
点击按钮的时候,上面的URL在改变,但点击浏览器的后退按钮的时候,上面的内容是不变的。
接下来,我们给popstate加个监听器,监听数字。数字内容也就会随着改变了。
addEventListener('popstate', function(e){
if(e.state && e.state.count) {
num.innerHTML = e.state.count;
document.title = 'Number'+e.state.count;
}else {
num.innerHTML = 1;
document.title = 1;
}
});
二、创建一个路由
PAJX就是pushState+Ajax。同时使用这两者,只需更新页面的一小部分和URL,页面不需要重新加载,这样就能极大加快访问速度。
建立一个单页程序的方法很多,最简单的就是使用一个路由。
var routes = [];
//建立route对象,插入到数组routes中
function addRoute(route, callback, scope) {
var routeObj = {
route: route,
callback: callback,
scope, scope
};
routes.push(routeObj);
}
//匹配符合要求的route,并执行回调函数
function handleRoute(path, noHistory) {
var len = routes.length, scope;
for(var i=0; i<len; i++) {
if(path.match(routes[i].route)) {
//如果给定了作用域就用给的作用域
if(routes[i].scope) {
scope = routes[i].scope;
}else {
scope = window;
}
//如果是来自popstate事件,就不必再加入到栈中
if(!noHistory) {
history.pushState({}, null, path);
} routes[i].callback.apply(scope, [path]);
return true;
}
}
//没有route返回false
return false;
}
只需添加一个监听器就能让历史记录起作用。
window.addEventListener('popstate', function(e) {
handleRoute(window.location.href, true);
});
router = {
handleRoute:handleRoute,
addRoute:addRoute
};
给页面上的a标签按钮添加事件
//拦截单击,简单的绑定页面上面的a标签的点击事件
document.addEventListener('click', function(e) {
if(e.target.href) {
if(router.handleRoute(e.target.href)) {
e.preventDefault();
}
}
});
三、添加ajax请求
这里还做了点简单的缓存操作。点击后退按钮页面上的内容还能存在。
//缓存ajax的响应
var pageCache = {}; //格式化链接
function normalizeLink(path) {
return path.match(/([a-z_]+\.html)/)[1];
} //执行ajax请求或使用缓存
function handlePage(path) {
var href = normalizeLink(path);
if(pageCache[href]) {
document.querySelector('.content').innerHTML = pageCache[href];
} else {
ajax.makeRequest(href.replace('.html', '_frag.html'), function(xhr) {
document.querySelector('.content').innerHTML = xhr.responseText;
pageCache[href] = xhr.responseText; }, this);
}
} router.addRoute(/[a-z_]+\.html/, handlePage);
aaarticlea/png;base64,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" alt="" />
代码是参照《HTML5触摸界面设计与开发》这本书的示例demo而写的。这本书的源码可以在这里获取到。
demo下载:
http://download.csdn.net/detail/loneleaf1/8730963
参考资料:
http://www.w3school.com.cn/jsref/dom_obj_history.asp History 对象
https://developer.mozilla.org/zh-CN/docs/DOM/Manipulating_the_browser_history 操纵浏览器的历史记录
PJAX实现的更多相关文章
- PJAX的实现与应用
一.前言 web发展经历了一个漫长的周期,最开始很多人认为Javascript这们语言是前端开发的累赘,是个鸡肋,那个时候人们还享受着从一个a链接蹦 到另一个页面的web神奇魔术.后来随着JavaSc ...
- 有人要分享pjax吗?
安装 1.在 composer.json 的 require里 加入 "yuanchao/pjax-for-laravel-5": "dev-master" 2 ...
- PJAX初体验(主要是利用HTML5 新增API pushState和replaceState+AJAX)
说在前面 什么是PJAX呢? 站在应用角度的就是既实现了页面无刷新的效果,同时也产生了浏览器的前进和后退,而且url也会变化. 也不是什么新鲜技术,主要是AJAX+html5 pushState和re ...
- Pjax调用
$.pjax({container:'#content_center',url:href,data:data}); $(document).on('pjax:send', function() {// ...
- pjax技术的应用
一.什么是PJAX? 现在有一些网站(apicloud, github)支持这样一种浏览方式,当你点击站内的一个连接的时候,不是传统的跳转到另外一个连接,而是类似ajax的局部刷新改变页面内容,但是 ...
- yii2 pjax使用
Pjax::begin(['id'=>'datalist']); echo GridView::widget([ 'dataProvider' => $dataProvider, 'col ...
- jQuery Pjax – 页面无刷新加载,优化用户体验
pjax 是 HTML5 pushState 以及 Ajax 两项技术的简称,综合这两个技术可以实现在不刷新页面的情况下载入 HTML 到当前网页,带给你超快速的浏览器体验,而且有固定链接.标题以及后 ...
- 从零开始,做一个NodeJS博客(四):服务器渲染页面与Pjax
标签: NodeJS 0 一个星期没更新了 = = 一直在忙着重构代码,以及解决重构后出现的各种bug 现在CSS也有一点了,是时候把遇到的各种坑盘点一下了 1 听歌排行 API 修复与重构 1.1 ...
- yii2 Pjax的使用
有两个例子:刷新时间和数据显示排序 1.刷新时间 (1)控制器中的方法:Time public function actionTime() { return $this->render('tim ...
- jquery.pjax.js bug问题解决集锦
jquery.pjax 是一个很好的局部刷新插件,但实际应用过程是还是会有很多小问题,部分问题解决如下: 1.pjax 局部加载时候,IE 存在缓存问题,很容易理解,pjax是通过jquery的aja ...
随机推荐
- String.Format 格式说明
C#格式化数值结果表 字符 说明 示例 输出 C 货币 string.Format("{0:C3}", 2) $2.000 D 十进制 string.Format("{0 ...
- 天气预报API开发
天气预报API开发 一. 寻觅篇 最近想要跟着视频练习一下利用API开发一个天气预报系统,就在网上找了一下可以用的API,结果好多都已经失效了... 1. 百度车联网天气预报 ...
- Event Store 2.0发布,带来了安全支持和测试版Projections库
Event Store 2.0版本于上周发布,它带来了安全支持允许锁定Event Store和在事件流上设置访问控制列表.其主要新特性包括: HTTP和TCP之上的身份认证,包括账户管理 测试版Pro ...
- IOS9.0中hash值的bug与解决方案
事件起因 事情是这样的:产品上线发布,突然出现了问题.运营Gg过来反应,当场给露珠演示,运营同事的手机是iphone,bug确实是存在的.奇怪的是露珠用了其他iphone手机(借别人的,露珠的是吊死安 ...
- ENode框架Conference案例分析系列之 - 事件溯源如何处理重构问题
前言 本文可能对大多数不太了解ENode的朋友来说,理解起来比较费劲,这篇文章主要讲思路,而不是一上来就讲结果.我写文章,总是希望能把自己的思考过程尽量能表达出来,能让大家知道每一个设计背后的思考的东 ...
- [Oracle](不会的是三炮)把状态列表作为存储过程参数这件小事
抱歉用了这么渣的标题,其实是一个很简单而且很常见的需求:假设我们有一个学生表,它有一个状态字段: create table T_STU ( STU_ID ) not null, NAME ), COD ...
- 备忘-Android ViewPager 与Gallery滑动冲突解决方法
解决方法,重新定义gallery,禁止触发pager的触摸事件 1 public class UserGallery extends Gallery implements OnGestureListe ...
- chunkupload 文件上传断点续传组件(java) - 正式发布
chunkupload简介 chunkupload是一款基于java语言的断点续传组件,针对文件上传,非文件下载,集成方便,使用简单. chunkupload实现如下功能: · 实现断点续传 · ...
- 浅析MSIL中间语言——基础篇
一.开篇 研究MSIL纯属于个人喜好,说在前面MSIL应用于开发的地方很少,但是很大程度上能够帮着我们理解底层的原理,这是我了解MSIL的主要原因.托管代码表示应用程序的方法的功能,它们以微软的中间语 ...
- error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MDd_DynamicDebug”不匹配值“MTd_StaticDebug”
今日VS2012 C++编译出现一堆错误: > 正在生成代码... >Code.obj : error LNK2005: "public: __thiscall std::_Co ...