Приложение Google Chrome: поведение в режиме просмотра веб-страниц

При поиске вопроса о на расширение Chrome, в Chrome Apps попался на глаза и заинтересовал меня.

Поэтому я решил сделать небольшой пример проблемы, с которой я сталкиваюсь и посмотреть, если получить решение. Из того, что я понял из просмотра видео Chrome Dev,webview запускается в отдельном процессе, чем ваше приложение; это нене имеет те же разрешения, что и ваше приложение. Так что я предполагаю, что содержание в прогонах определенным образом отделено от 'главная нить (приложение), я полагаю, что их содержимое будет выполняться отдельно друг от друга, не блокируя приложение или другое в случае, если у любого из них может быть возможное длительное выполнение js. Поэтому я сделал следующее:

background.js
chrome.app.runtime.onLaunched.addListener(function() {
  // Tell your app what to launch and how.
  chrome.app.window.create('window.html', {
      width: 1800,
      height: 1000
  });
});
manifest.json
{
  // Required
  "name": "Hello World!",
  "version": "0.1",
  "manifest_version": 2,

  // Recommended
  "description": "My first packaged app.",
  "icons": { "16": "calculator-16.png", "128": "calculator-128.png" },
  // "default_locale": "en",

  // Pick one (or none) OF browser_action, page_action, theme, app 

  "app": {
    "background": {
      "scripts": [ "background.js" ]
    }
  },

  "minimum_chrome_version": "23",

  "permissions": [ "webview" ]

}
window.html


  
  
  
    Hello, world!
    
    
    
    
  

Три из этих веб-просмотров являются обычными веб-страницами, просто пример длинного файла js, вы можете проверить код или я могу предоставить его позже. Если я открою 4 окна браузера Google Chrome, введите адрес, нажмите Enter, что я заметил бы: 3 страницы загружаются сразу, а другая с длинным JS выполнения все равно будет работать.

Если я делаю это на веб-странице, используя для открытия этих 4 веб-страниц, так как это все в том же процессе, если 1 страница медленная / блокируется из-за выполнения js, все остальные будут заблокированы.

Теперь, используя приложение Chrome, я заметил кое-что интересное и странное в поведении. Я замечаю следующее:

Если я загружаю только первые 3 веб-страницы, загрузка происходит быстро ив то же время' или так кажется;Если я загружаю все веб-страницы как есть, я вижу, как загружаются первые 3 страницы, а последняя, поскольку она имеет длинное выполнение js, отнимает его время, а затем показывает (это было бы оптимальным поведением), так как это разные процессы, которые они не должны 't зависит от того, является ли веб-просмотр медленным, другие должны ждать;Теперь, если я прокомментирую третье, обновлю и выполню приложение, я не увижу веб-просмотр, пока не закончится тот, который содержит longscript. (почему это происходит?)Точка выше случайна или это происходит, как я уже говорил, или нетт.И, наконец, давайтедобавить еще, то, что произойдет для меня, это: первые три загружаются, четвертый выполняется и после того, как закончен и отображается, я вижу пятый визуализированный.

Мой главный вопрос / сомнение касается поведения, и поскольку они на самом деле работают в отдельном процессе, почему это не так?Например, у него такое же поведение, как у окна браузера. Почему это веб-представление блокирует работу / рендеринг других пользователей, оно должно работать так, как есть? Должен ли я сделать некоторые обходные пути, чтобы определить, если веб-просмотр через некоторое время незакончил, чтобы пропустить загрузку и позволить другим загружаться, чтобы я мог вернуться к медленным?

Заранее спасибо.

Ответы на вопрос(1)

Ваш ответ на вопрос