0

我有一個Windows Phone 7 Silverlight和XNA應用程序。 我還使用了一種使用javascript將動態圖像呈現在屏幕上的服務。Windows Phone 7 Web瀏覽器更新太慢

在個人電腦上,JavaScript流暢而流暢,我可以在圖像之間跳躍並平滑過渡。但是,我需要將此功能帶到手機中。

截至目前,我已經設法使用Silverlight中的Web瀏覽器控件加載我的HTML文件並執行腳本。問題是,一旦應用程序的「動態」部分啓動,Web控件的更新速度就不夠快。與PC版本所帶來的平滑滑動動畫不同,我得到了口吃,類似於遊戲中的低FPS。

所以,我想知道:有什麼辦法可以提高網頁瀏覽器控件的更新率嗎?

另一個想法是我已經(但實施失敗了)是在應用程序的XNA頁面中嵌入一個Web瀏覽器,並使用XNA的更新速率,這個速度要高得多(我猜測它是標準的60 fps)。但是,Silverlight Web瀏覽器控件似乎沒有更新呈現功能,並且我無法找到將Web瀏覽器嵌入到XNA應用程序本身內的庫。

有沒有人有任何想法如何讓我的動態HTML文件與JavaScript呈現流暢和流暢?

編輯: 使用在30 FPS定時器webBrowser.InvalidateArrange()似乎已經加快了瀏覽器刷新,但它仍然心驚肉跳。如果我嘗試增加FPS,瀏覽器將恢復爲慢速。

+0

這可能只是硬件和手機上JS引擎速度慢的問題。您可以嘗試使用CSS轉換來製作動畫 - 這對大多數移動設備都有幫助。 – 2012-02-13 04:08:42

+0

因爲我使用第三方JavaScript庫(它爲我提供了一個控件),所以我不能使用JS以外的其他任何東西。 – Dragonseer 2012-02-13 04:12:21

回答

0

使用定時器設置爲17毫秒(60 FPS)我強制瀏覽器失效,導致它重畫。除此之外,我還消除了瀏覽器不需要重新繪製的框架。

DispatcherTimer timer = new System.Windows.Threading.DispatcherTimer(); 
    timer.Interval = new TimeSpan(0, 0, 0, 0, 17); // 30 FPS 
    timer.Tick += new EventHandler(timer_Tick); 
    timer.Start(); 

    void timer_Tick(object sender, EventArgs e) 
    { 
     if (loaded && coded && needToUpdate) 
     { 
       webBrowser.InvokeScript("setPitch", pitch.ToString()); 
       webBrowser.InvokeScript("setHeading", heading.ToString()); 
       Redraw(); 

       needToUpdate = false; 
     } 
    } 

    void Redraw() 
    { 
     webBrowser.InvalidateMeasure(); 
     webBrowser.InvalidateArrange(); 
     webBrowser.Visibility = System.Windows.Visibility.Visible; 
    } 
0

我猜是標準的60 fps的

標準是30 FPS

我無法找到一個圖書館嵌入XNA應用程序本身內部的Web瀏覽器。

我不認爲它會得到任何改進。

所以,我想知道:有什麼辦法來提高網絡瀏覽器控制的更新率?

  1. 讓一個只有在主頁上的web瀏覽器控件的測試程序 - 確保沒有什麼吃的,除了網絡控制的資源。
  2. 檢查應用程序的執行方式。如果在用戶使用「動態」部分的時候減少應用程序中的其他任何處理如果性能仍然很差,那麼您只能優化JavaScript本身
  3. 如果它仍然不可接受,請切換功能或做一個本地的。
  4. 利潤!
+0

目前瀏覽器應用程序是主頁上唯一的東西。瀏覽器啓動時沒有其他處理。我無法優化JavaScript,因爲它是第三方庫,我無法訪問它(這是Google的,所以我想它已經非常優化了)。我無法削減功能,因爲這是功能。我不能做一個本地的,沒有資源/不能違反Google TOS。重新XNA表現:XNA遊戲更新速度非常快。我會想象一個爲XNA構建的Web瀏覽器會運行良好。我還沒有找到。 – Dragonseer 2012-02-13 04:34:57

+0

谷歌正在大量的瀏覽器上進行搜索,他們不太可能會針對WP7進行優化。網頁控制是本地的,無論託管在哪裏都無關緊要。如果你不能重新設計/削減/優化你註定。 – 2012-02-13 04:51:45

相關問題