最近在做一個項目,由於涉及到跨平台性,所以採用了jquerymobile這個架構,在開發過程中,一開始為了圖測試方便,採用了chrome瀏覽器來測試回合。現敘述如下問題:
當在first.html中,有個連結如:<a href="second.html" data-role="button" id="submit">登入</a>
而在second.html中,譬如我引用了highcharts這個jquery圖表外掛程式,會在second.html頁面中產生一些圖表。
可是這種情況,當我用chrome瀏覽器點擊“登入”按鈕時,連結到second頁面,可是second頁面的圖表不會顯示,需要重新整理一下才能顯示圖表,於是我結合了phonegap,把此項目布到android手機中進行測試,也是如此。我很是鬱悶,我後來換了360瀏覽器進行測試,雖然不支援jquerymobile架構主題樣式顯示,不過它連結過去能一下子出現圖表的,而不需要重新整理。對此,我就開始懷疑是否是瀏覽器連結載入頁面的方式不一樣的問題了。
反正中間耗費了很多時間去定位問題的所在。也是由於剛接觸此類技術,並不是很精。後來想想還是追本還原,回到最起點,把jquerymobile的連結看了一下,有這麼一段話: Jquery Mobile支援所有標準的html格式,為了讓體驗更加流暢,Jquery Mobile會把同一個域下的所有指向頁面的連結都會自動轉為ajax請求,並且用動畫的轉場效果實現切換 指向別的域的連結或者是含有 rel="external", data-ajax="false" 屬性的連結以及含有target屬性的連結不會通過ajax載入,頁面會整體被重新整理。 對此,我就考慮到了,是否是因為chrome為了提高頁面的載入速度,採用了ajax載入,頁面不會整體被重新整理。於是我就在button按鈕上加上了data-ajax="false",然後果然行了。 正確的方式如下: <a href="second.html" data-role="button" id="submit" data-ajax="false" >登入</a>