Spec-Zone .ru
спецификации, руководства, описания, API
След: Развертывание
Урок: Апплеты Java
Раздел: Выполнение Больше С Апплетами
Обработка Состояния Инициализации С Обработчиками событий
Домашняя страница > Развертывание > Апплеты Java

Обработка Состояния Инициализации С Обработчиками событий

Апплет не может обработать запросы от кода JavaScript в веб-странице, пока апплет не был инициализирован. Звонок в метод апплета или доступ к переменной апплета от кода JavaScript будет блокирован до апплета init() метод полон, или апплет сначала вызывает код JavaScript от веб-страницы, в которой это развертывается. Поскольку реализация JavaScript является однопоточной во многих браузерах, веб-страница, может казаться, замораживается во время запуска апплета.

Начинаясь в JDK 7 выпусков, можно проверить status переменная апплета, в то время как это загружается, чтобы определить, готов ли апплет обработать запросы от кода JavaScript. Можно также зарегистрировать обработчики событий, которые будут автоматически вызваны во время различных этапов инициализации апплета. Чтобы усилить эту функциональность, апплет должен быть развернут с java_status_events набор параметра к "true".

В примере Состояния и Обработчика событий, кодовые регистры JavaScript onLoad обработчик с апплетом. onLoad обработчик автоматически вызывается программным обеспечением Плагина Java, когда апплет был инициализирован. onLoad обработчик вызывает другие методы апплета, чтобы потянуть график на веб-странице. init метод DrawingApplet class спит в течение двух секунд, чтобы моделировать долгий период инициализации апплета.

Следующие шаги описывают, как зарегистрировать обработчики событий и проверить состояние апплета. См. Состояние Апплета и Обработчики событий для полного списка значений состояния апплета и событий апплета, для которых могут быть зарегистрированы обработчики событий.

  1. Создайте функцию JavaScript, чтобы зарегистрировать обработчики событий. Следующий фрагмент кода показывает registerAppletStateHandler функция, которая регистрируется onLoad обработчик событий, если апплет уже не загрузился.
    <script>
    <!-- ... -->
        var READY = 2;
        function registerAppletStateHandler() {
            // register onLoad handler if applet has
            // not loaded yet
            if (drawApplet.status < READY)  {                 
                drawApplet.onLoad = onLoadHandler;
            } else if (drawApplet.status >= READY) {
                // applet has already loaded or there
                // was an error
                document.getElementById("mydiv").innerHTML = 
                  "Applet event handler not registered because applet status is: "
                   + drawApplet.status;    
            }
        }
        
        function onLoadHandler() {
            // event handler for ready state
            document.getElementById("mydiv").innerHTML =
                "Applet has loaded";
            draw();
        }
    <!-- ... -->
    </script>        
    
  2. Вызовите ранее создаваемый registerAppletStateHandler функция в body onload метод тега. Это гарантирует, что HTML-тэг для апплета был создан в Объектной модели документа (ДОМ) дерево веб-страницы прежде, чем обработчики событий апплета будут зарегистрированы.
    <body onload="registerAppletStateHandler()">
    
  3. Разверните апплет с java_status_events набор параметра к "true".
    <script src=
      "http://www.java.com/js/deployJava.js"></script>
    <script>
        // set java_status_events parameter to true 
        var attributes = { id:'drawApplet',
            code:'DrawingApplet.class',
            archive: 'applet_StatusAndCallback.jar',
            width:600, height:400} ;
        var parameters = {java_status_events: 'true'} ;
        deployJava.runApplet(attributes, parameters, '1.7');
    </script>
    

Открытый AppletPage.html в браузере, чтобы просмотреть поведение обработчиков событий апплета. В AppletPageUpdatedDuringLoading.html страница, status переменная апплета проверяется, чтобы определить, был ли апплет загружен. Основанный на состоянии, веб-страница непрерывно обновляется, в то время как апплет загружается.


Отметьте:  

Если Вы не видите, что апплет работает, Вы должны установить, по крайней мере, Java Комплект разработчика SE (JDK) 7 выпусков.



Отметьте:  

Если Вы не видите, что пример работает, Вы, возможно, должны были бы включить интерпретатору JavaScript в своем браузере так, чтобы сценарий Инструментария Развертывания мог функционировать должным образом.


Загрузите исходный код для примера Состояния и Обработчика событий, чтобы экспериментировать далее.


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

Предыдущая страница: Вызов Методов Апплета От Кода JavaScript
Следующая страница: Управление ДОМОМ Веб-страницы Апплета