Сценарий Dojo не выполняется на iPad, когда async = true - PullRequest
0 голосов
/ 22 февраля 2012

У меня есть простая тестовая страница (ниже), которую я пытаюсь отобразить на iPad. Страница просто загружает пару мобильных модулей Dojo и показывает окно предупреждения. Появляется окно с предупреждением, и тема мобильного устройства применяется, возможно, 1 раз из каждых 10 или 20 обновлений страницы. Однако, если я отключу асинхронную синхронизацию, предупреждение будет отображаться каждый раз при обновлении страницы.

Существует ли какая-либо несовместимость между режимом асинхронной загрузки 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>

1 Ответ

0 голосов
/ 22 февраля 2012

После еще нескольких копаний, я думаю, я нашел ответ на свой вопрос. Согласно заявке Django dev 3357 , сервер разработки Django (сервер выполнения) является однопоточным, поэтому он не может обрабатывать несколько одновременных запросов. Перевод загрузчика Dojo в асинхронный режим делает несколько одновременных запросов, так что, вероятно, это является источником проблемы.

Суть в том, что использование Dojo с включенным async не является поддерживаемым вариантом использования для сервера разработки Django.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...