Spec-Zone .ru
спецификации, руководства, описания, API
След: Развертывание
Урок: Всестороннее Развертывание
Раздел: Развертывание Лучшие Методы
Уход от Ненужных Проверок Обновления
Домашняя страница > Развертывание > Всестороннее развертывание

Уход от Ненужных Проверок Обновления

Богатые Интернет-приложения (RIA) кэшируются локально, чтобы улучшить время запуска. Однако, прежде, чем запустить RIA, проверки программного обеспечения запуска, чтобы удостовериться, что каждый файл JAR, на который ссылаются в Протоколе Запуска Сети Java RIA (JNLP) файл, актуален. Другими словами программное обеспечение запуска удостоверяется, что Вы выполняете последнюю версию RIA и не более старой кэшируемой копии. Эти проверки обновления могут взять до нескольких сотен миллисекунд в зависимости от числа файлов JAR и сетевой скорости. Используйте методы, описанные в этой теме, чтобы избежать ненужных проверок обновления и улучшить время запуска Вашей RIA.


Отметьте: 

Термин "запуск программного обеспечения" используется здесь, чтобы все вместе обратиться к программному обеспечению Плагина Java, и Сеть Java Запускают программное обеспечение. Программное обеспечение Плагина Java запускает апплеты, в то время как Сеть Java Запускается, Сеть Java запусков программного обеспечения Запускают приложения.


Усиление Протокола Загрузки Версии

Можно усилить протокол загрузки версии, чтобы устранить ненужные проверки версии. См. следующие шаги, чтобы включить этому протоколу.

  1. Переименуйте файлы JAR, чтобы включать суффикс номера версии со следующим соглашением о присвоении имен:
        
        <JAR file name>__V<version number>.jar
    
    Например, переименовать DynamicTreeDemo.jar к DynamicTreeDemo__V1.0.jar.
  2. В файле JNLP определите версию для каждого файла JAR, и установите jnlp.versionEnabled свойство к true.
    <resources>
        <!-- Application Resources -->
        <j2se version="1.6+"
            href="http://java.sun.com/products/autodl/j2se"
                max-heap-size="128m" />
        <jar href="DynamicTreeDemo.jar"
            main="true" version="1.0"/>   
        <jar href="SomeOther.jar" version="2.0"/>
        <property name="jnlp.versionEnabled"
            value="true"/>
        <!-- ... -->
    </resources>
    

    Когда jnlp.versionEnabled свойство включается, программное обеспечение запуска выполняет только одну проверку обновления, чтобы удостовериться, что файл JNLP актуален. Программное обеспечение сравнивает номера версий, которые определяются в файле JNLP с соответствующими версиями файла JAR (согласно соглашению о присвоении имен, упомянутому в шаге 1), и обновляет только устаревшие файлы JAR. Этот подход эффективен, потому что только проверка обновления на файл JNLP происходит по сети. Все другие проверки версии происходят локально.

    Если файл с корректным номером версии не находится, программное обеспечение запуска пытается загрузить файл JAR значения по умолчанию (например, DynamicTreeDemo.jar).

Выполнение Проверок Обновления в фоновом режиме

Если не является критическим для пользователя сразу выполнить последнюю версию Вашей RIA, можно определить, что все проверки обновления должны произойти в фоновом режиме. В этом случае программное обеспечение запуска запускает локально кэшируемую копию для непосредственного использования и загружает более новую версию RIA в фоновом режиме. Более новая версия RIA будет запущена в следующий раз, когда пользователь пытается использовать Вашу RIA. Чтобы включить фоновым проверкам обновления, добавьте следующую строку к своему файлу JNLP:

<update check='background'/>

Следующий фрагмент кода показывает демонстрационный файл JNLP с фоновой включенной проверкой обновления:

<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" codebase="" href="">
    <information>
        <title>Applet Takes Params</title>
        <vendor>Dynamic Team</vendor>
    </information>
    <resources>
        <!-- Application Resources -->
        <j2se version="1.6+" href=
            "http://java.sun.com/products/autodl/j2se"/>
        <jar href="applet_AppletWithParameters.jar"
            main="true" />
    </resources>
    <applet-desc 
         name="Applet Takes Params"
         main-class="AppletTakesParams"
         width="800"
         height="50">
             <param name="paramStr" value="someString"/>
             <param name="paramInt" value="22"/>
     </applet-desc>
     <update check="background"/>
</jnlp>

Проблемы с примерами? Попытайтесь Компилировать и Выполнить Примеры: FAQ.
Жалобы? Поздравление? Предложения? Дайте нам свою обратную связь.

Предыдущая страница: Сокращение Времени Загрузки
Следующая страница: Подписание Файлов JAR Только Когда необходимо