Лучшая практика для автоматических обновлений

div не имеет никакого свойства, называемого value. Вы можете проверить это в здесь . Если вы все еще хотите использовать его, используйте getAttribute

let boxes = document.querySelectorAll('.box');

for (var i = 0; i < boxes.length; i++) {
  boxes[i].addEventListener('click', function(e) {
    console.log(this.getAttribute('value'))
  })

}
1
2
3
4
5
6

11
задан Zach Johnson 27 March 2010 в 16:26
поделиться

3 ответа

Недавнее сообщение в блоге от команды Хрома является замечательным гидом:

http://blog.chromium.org/2009/01/google-chrome-installation-and-updates.html

В основном то же самое сделано, когда Вы используете ClickOnce MS, и у меня нет проблемы при использовании приложений с таким методом обновления до сих пор, таким образом, я предполагаю, что это классифицирует как "Лучшую практику"..., но это - просто я.

  1. Сохраните каждую версию в ее собственной уникальной папке.
  2. Используйте "Средство запуска" для запуска большей части доступной обновленной версии и...
  3. Проверьте на любые новые версии в фоновом режиме после того, как приложение запустится.
  4. Загрузите любую новую найденную версию и сделайте новую папку для той версии.

Google Chrome немного отличается, так как они используют сервис Google Update, чтобы сделать обновление, но общий опыт / цикл является в значительной степени тем же.

Ваш пользователь запускает приложение, если какая-либо новая версия доступна, она загружается в фоновом режиме. И затем в следующий раз, когда приложение запускается, Ваш пользователь получает новую версию автоматически и (если возможный) тихо.

8
ответ дан 3 December 2019 в 04:14
поделиться

Используйте существующую платформу

На MacOS X: используйте платформу Блеска, http://sparkle.andymatuschak.org

На пакетах Linux:create и репозиториях установки для дистрибутивов Вы будете поддерживать

1
ответ дан 3 December 2019 в 04:14
поделиться

Несколько подсказок:

  • Независимо от того, как Вы принимаете решение сделать это, не создавайте новое обслуживание или процесс, чтобы проверить на обновления и затем оставить его на непрерывно. Вы знаете, как Adobe и Sun (для Java) любят делать. Независимо от того, что Вы делаете, я могу гарантировать, что не достаточно важно, чтобы это было обновлено каждый раз, когда пользователь запускает компьютер. Обновления должны или быть интегрированы со стандартизированным процессом обновления, характерным для ОС или когда приложение работает. Обновления не должны непрерывно красть системные ресурсы или замедлять процесс начальной загрузки по умолчанию.

  • При поддержании отдельных каталогов для каждой версии необходимо добавить код для поддержания этого. Дисковое пространство не предназначается для заправки обновлений. Я вспоминаю одно приложение Citrix, которое имело 5 различных версий на моем компьютере когда-то. Пользователь не должен видеть больше чем две копии (максимум одного резервного копирования, подтвержденного как функциональные) Вашего приложения в их файловой системе, если они явно не разместили их туда. Ярлыки на Ваше приложение могут стать устаревшими, когда местоположение папки изменяется как это, так быть осторожным.

  • Если бы Вы обновляете после того, как программа была запущена, я рекомендовал бы уведомить пользователя ненавязчивым способом. Если обновление не вызывает существенное изменение в функциональности, загрузите обновление в фоновом режиме, переключитесь на новую версию в следующий раз, когда приложение выполняется, и уведомьте пользователя существенных изменений (не используйте модальное диалоговое окно или крадите фокус). Не заставляйте пользователя нажать кнопку, чтобы согласиться установить обновления прежде, чем запустить приложение или вынудить их перезапустить для использования обновленной версии. Позвольте пользователям настраивать автоматические обновления, затем делать это, не влияя на их производительность. Firefox довольно плох об этом, которое печально, так как это - такое интегральное приложение многим пользователям.

  • Не касайтесь системного лотка. Это должно быть зарезервировано для полезного (пользователю) приложения. Я также рекомендовал бы против уведомлений о воздушном шаре, также. Используйте что-то как информационная панель, обычно замечаемая в браузерах. Приложения Microsoft являются особенно неработающими об использовании системного лотка и уведомлений о воздушном шаре для траты пользовательского времени с неважными уведомлениями. Если пользователь включил автоматические обновления, они действительно не должны знать, что все работает, как они ожидали. Скажите им, когда существует что-то новое или полезное, и не вызывайте знание вниз их горла. Оставьте журнал изменений под объектом Меню справки, таким образом, они могут проверить исправления ошибок самостоятельно.

  • Остерегайтесь обновлений с помощью системы MSI при развертывании конфигурационного файла по умолчанию. Вы не хотите перезаписывать любые пользовательские файлы в своем обновлении. В том же духе, если формат конфигурационных файлов или пользовательских изменений файлов, необходимо обеспечить механизм, чтобы автоматически скопировать и обновить те файлы. Или начните создавать настройки по умолчанию внутренне в рамках приложения вместо того, чтобы развернуть их.

  • Будьте сознательной пропускной способностью. Большие файлы занимают время и возможно измеренная пропускная способность от Ваших пользователей. Особенно, если Вы ежедневно обновляете.

Я не могу вспомнить действительно ненавязчивую процедуру обновления бесцеремонно, но я могу вспомнить много, которое потратило впустую мое время и ресурсы в прошлом. Не будьте парнем, который делает другого.

16
ответ дан 3 December 2019 в 04:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: