[问题] 为什么页面没有回复到原先的样子? (PJAX)

楼主: red0whale (red whale)   2015-05-28 19:03:15
我正在做一个PJAX(pushState+AJAX)无刷新改变URL的页面,以下是个简单的测试:
pushState1.html:
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
<script src="jquery.js" type="text/javascript"></script>
<script language="javascript" type="text/javascript">
<!
作者: lvlightvivi (阿美)   2015-05-28 23:33:00
研究了一下 画面更变是依靠popstate事件 但是2.html内没有注册该事件,所以不会有变化除非2.html也有用js注册一样的事件
作者: mrbigmouth (大嘴先生)   2015-05-29 06:28:00
不是楼上的原因 因为都在同一页我刚自己弄了一个简易server 完全照抄你的程式码执行起来没有问题喔 点击link1、link2时#content的内容会在abc跟kkkddddssss之间来回变化浏览器是chrome上一页也没问题如果你是按下上一页钮才出现问题 请确认你浏览器支援pushState附带一提 直接用jQuery去parse有点诡异 我不确定你这种作法能适用所有状况 通常是靠后端支援啦
作者: banana2014 (香蕉共和国)   2015-05-29 12:23:00
你确定你这样做没有问题吗? 为什么我做的跟他一样回上页之后就没有回复成原来1.html的画面呢? 请问你有执行步骤2的程序吗? 还是说你没有汇入jquery.js呢? 照理来说点击Link之后只有上面那行字(abc)会改变,下面的那行字(This is pushState1.html)是不会变动的,而且步骤2一定要执行,否则根本看不出他说的问题...
作者: mrbigmouth (大嘴先生)   2015-05-29 12:50:00
下面那行字不会变动是正常的 他根本没处理content2啊步骤2是我漏了 那就是一楼回的 你重新输入网址进入的就是第二页了 所有事件消失 当然失去pjax功能pushState1的所有script放在js档里让两页共用即可步骤二就相当于在url为第二页时按[重新整理]这样pushState1的所有js就都消失了我照这样写是没问题了靠后端支援的意思就是: 你在ajax时加入特殊的querystring或request header,server端在读到这个特殊参数
楼主: red0whale (red whale)   2015-05-29 18:55:00
那请问一下你说的“靠后端支援”是什么呢? 有没有程式
作者: mrbigmouth (大嘴先生)   2015-05-29 18:55:00
时就只response pjax所需的html片段 不会整个document
楼主: red0whale (red whale)   2015-05-29 18:56:00
提供给我呢? 谢谢你!
作者: mrbigmouth (大嘴先生)   2015-05-29 18:56:00
回传 而不是靠前端自己parse
楼主: red0whale (red whale)   2015-05-29 18:57:00
歹谢 你讲的好文言喔 可以再稍微白话一点吗? 谢谢
作者: mrbigmouth (大嘴先生)   2015-05-29 18:58:00
范例 http://goo.gl/f27MmV 要不同的后端就自己google
楼主: red0whale (red whale)   2015-05-29 22:28:00
对不起 我已经很努力了 不过我还是看不懂 Q_Q全是英文 而且它是用asp写的 我的SERVER语言是PHP而且google一下写pjax相关文章的确实不多,能不能请阁下亲自示范一段? 我觉得我爬文爬得好辛苦喔 根本找不到啊!! 真困难...
作者: KawasumiMai (さあ、死ぬがいい)   2015-05-29 23:07:00
试着用你的code改写....http://tinyurl.com/o4v5lct 这样?搭配php后端的话,这样吧?http://tinyurl.com/ojf366l

Links booklink

Contact Us: admin [ a t ] ucptt.com