2012-02-22 24 views
0

我有一個簡單的測試頁面(下圖),我試圖在iPad上顯示。該頁面只需加載一對Dojo移動模塊並顯示一個警告框。彈出提醒框,並且移動設備主題被應用,可能每10或20頁刷新一次。但是,如果關閉異步,則每次刷新頁面時都會顯示警報。當async = true時,在iPad上不執行Dojo腳本

Dojo的異步加載模式和我不知道的移動設備之間是否存在一些不兼容問題,或者我是否以某種方式錯誤地構建了此代碼?

我正在使用Dojo 1.7.1的未縮小版本,並使用Django的開發服務器提供頁面。

<!DOCTYPE html> 
<html lange="en"> 
    <head> 
    <meta charset="utf-8"> 
    <meta name="viewport" 
      content="width=device-width,initial-scale=1,maximum-scale=1,minimum-scale=1,user-scalable=no"/> 
    <meta name="apple-mobile-web-app-capable" content="yes"/> 
    <title>Testing Stuff</title> 

    <script> 
     dojoConfig = { 
      parseOnLoad: true, 
      async: true 
     }; 
    </script> 
    <script src="/static/js/dojo/dojo.js"></script> 
    </head> 

    <body> 
    <h1 id="heading">Mobile!</h1> 
    <script> 
     require(['dojox/mobile', 
       'dojox/mobile/deviceTheme'], function() { 
     dojo.ready(function() { 
      alert('hello'); 
     }); 
     }); 
    </script> 
    </body> 
</html> 

回答

0

經過一些挖掘,我相信我找到了我自己的問題的答案。根據Django dev ticket 3357,Django開發服務器(runserver)是單線程的,所以它不能處理多個同時請求。把Dojo的loader加入異步模式會產生多個同時發生的請求,所以這可能是問題的根源。

它的長短之處在於,啓用了async的Dojo並不是Django開發服務器支持的用例。

相關問題