[問題] 為什麼頁面沒有回復到原先的樣子? (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