2012-11-03 55 views
1

我正在開發移動設備的應用程序。我正在使用jquery mobile和phonegap(以訪問設備的內部功能)。我有一個很大的xml文件,有10到1000多個節點。基本上我需要在自己的頁面上顯示每個節點。在jQuery手機中,構建一個包含所有頁面的html文件是很常見的做法。用jQuery Mobile顯示XML - 性能?

我的想法打建這樣的事情:

<div data-role="page" id="1">JS template filled with content of node1 from xml and linking to page 2.</div> 
<div data-role="page" id="2">JS template filled with content of node2 from xml and linking to page 3.</div> 

如果我通過解析與JavaScript的XML文件中創建這樣一個巨大的頁面,我擔心的是,應用程序會大大慢。根據我的經驗,瀏覽器無法很好地處理頁面,如果它們很長的話。該XML文件可以包含文本,並鏈接到圖像,視頻和音頻文件。 我試圖在客戶端通過xslt呈現xml文件,但遇到了問題,大多數android瀏覽器都不支持xsl(至少我的不支持)。 我需要在客戶端找到解決方案,因爲該應用程序應該也可以在沒有Internet連接的情況下工作。

你能指點我正確的方向嗎?也許我錯了,如果主html文件包含幾百頁,這沒什麼大不了的?我也有想從xml中逐個獲取頁面,因爲我一次不會顯示多個頁面。但我不確定如何跟蹤我已經顯示給用戶的節點。 xml文件不包含自動遞增標識符。因此,通過xpath訪問特定的節點會很困難,或者我錯過了某些東西?

謝謝!

回答

1

一個具有一千個節點的XML文件在大多數人的標準中都很小(並且有10個節點的XML文件很小),所以很難看出你真正的問題是什麼。

儘管某些移動瀏覽器沒有原生XSLT支持,但您可以嘗試Saxon-CE,它提供了可在任何支持Javascript的瀏覽器上運行的XSLT 2.0實現。

+0

謝謝你的回答。 我知道xml文件不大。我擔心的是,從xml文件創建jquery移動頁面可能需要很長時間。循環和頁面構建過程需要時間。 我目前的解決方案: 1.加載xml文件 2.迭代文件 3.通過使用簡單的JS模板引擎 追加每個data-role =「page」,但這太慢了。大約需要10秒鐘才能加載1000頁的應用程序。一旦html被創建,該應用程序運行正常。 Saxon-CE可能是一種解決方案,但我更喜歡使用開源且免費的解決方案。 –

+0

是的,我很明白,我們都喜歡別人來支付我們的軟件!追加1000個元素10秒看起來很荒謬,但我對這項技術並不熟悉,所以不能指出你的解決方案。 –

+0

我瞭解你的憤怒,因爲你開發了撒克遜-CE。但請不要錯誤地使用它。我是一名學生,我在大學做這個項目。我支付足夠的學費,應該能夠爲這個小項目自己開發一些東西。我只是在尋找提示,如果有什麼東西可以提高效率。我也尊重你的回答並投票表決。所以不用生氣。如果我正在爲一家大公司開發此應用程序,我肯定會嘗試Saxon-CE。當然,你不可能知道這一點。 –