2012-06-25 50 views
0

我使用jquerymobile做兩頁。第一個包含到第二個的鏈接。JqueryMobile - 刷新AJAX網頁加載

<a href="index.php/main/uploadView/" data-transition="none" data-icon="plus">Some page</a> 

當我點擊鏈接時,我得到我的新頁面加載。但是,如果我按F5按鈕,我會得到沒有任何js腳本和css文件的新頁面。 第一頁的結構是:

<html> 
    <head> 
    ... js/css files ... 
    </head> 
    <body> 
     <div data-role="page" id=".."> 
     ... 
     </div> 
    </body> 
</html> 

第二:

<div data-role="page" id="..."> 
... 
</div> 

那麼,怎樣才能實現我F5鍵正常工作?就像如果我把我所有的內部一個頁面(然後它工作正常)

,並有可能改變頁面的內容只是一部分,所以我不會複製粘貼頁眉和頁腳所有的時間?

在此先感謝

回答

0

這是舊的,但有很多的瀏覽量,而我沒有看到其他地方的答案...

我覺得有依賴於所期望的行爲兩種解決方案。

首先是要有相同的模板 - 頭,包括等 - 在第二頁,每一頁。這確保了「深層鏈接」,並刷新將工作無關的瀏覽器支持URL散列(Chrome需要這一點,即沒有正常工作。)

是必需的狀態(statefullness)時,此摔倒。如果用戶登錄或在第一頁上搜索某些內容,並在第二頁上向他們顯示結果,則第二頁的深層鏈接沒有任何意義,並且不應該被真正導航到。同上F5;刷新時你會失去狀態。

從而導致溶液中的兩種,重定向到第一或「家」網頁,如果用戶通過鏈接或刷新用武之地。與其模仿非索引頁面模板,只需更改標題的位置:

<script> 
    location.href = "index.html"; 
</script> 

在腳本中的標題JQM正常AJAX頁面導航過程中不運行;這僅在直接導航到頁面時運行。

其中這個是直接導航到像mysite/index.html#/ pageTwo.html這樣的散列URL。 jQM加載index.html,然後加載pageTwo.html而不處理標題腳本,但如果這是一個有狀態的頁面,它將無法正確顯示。

可以關掉完全hasing:

$.mobile.changePage.defaults.changeHash = false; 

或把支票狀態在pageinit處理程序,如果頁面需要的狀態,反彈用戶返回到你的索引頁。