Spec-Zone .ru
спецификации, руководства, описания, API
|
Апплет не может обработать запросы от кода JavaScript в веб-странице, пока апплет не был инициализирован. Звонок в метод апплета или доступ к переменной апплета от кода JavaScript будет блокирован до апплета init()
метод полон, или апплет сначала вызывает код JavaScript от веб-страницы, в которой это развертывается. Поскольку реализация JavaScript является однопоточной во многих браузерах, веб-страница, может казаться, замораживается во время запуска апплета.
Начинаясь в JDK 7 выпусков, можно проверить status
переменная апплета, в то время как это загружается, чтобы определить, готов ли апплет обработать запросы от кода JavaScript. Можно также зарегистрировать обработчики событий, которые будут автоматически вызваны во время различных этапов инициализации апплета. Чтобы усилить эту функциональность, апплет должен быть развернут с java_status_events
набор параметра к "true"
.
В примере Состояния и Обработчика событий, кодовые регистры JavaScript onLoad
обработчик с апплетом. onLoad
обработчик автоматически вызывается программным обеспечением Плагина Java, когда апплет был инициализирован. onLoad
обработчик вызывает другие методы апплета, чтобы потянуть график на веб-странице. init
метод
class спит в течение двух секунд, чтобы моделировать долгий период инициализации апплета.DrawingApplet
Следующие шаги описывают, как зарегистрировать обработчики событий и проверить состояние апплета. См. Состояние Апплета и Обработчики событий для полного списка значений состояния апплета и событий апплета, для которых могут быть зарегистрированы обработчики событий.
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>
registerAppletStateHandler
функция в body
onload метод тега. Это гарантирует, что HTML-тэг для апплета был создан в Объектной модели документа (ДОМ) дерево веб-страницы прежде, чем обработчики событий апплета будут зарегистрированы. <body onload="registerAppletStateHandler()">
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
переменная апплета проверяется, чтобы определить, был ли апплет загружен. Основанный на состоянии, веб-страница непрерывно обновляется, в то время как апплет загружается.
Если Вы не видите, что апплет работает, Вы должны установить, по крайней мере,
Если Вы не видите, что пример работает, Вы, возможно, должны были бы включить интерпретатору JavaScript в своем браузере так, чтобы сценарий Инструментария Развертывания мог функционировать должным образом.