Вопрос

Поскольку мы сталкиваемся с проблемами производительности GWT в мобильном приложении, я заглянул в волновой код Google, поскольку он разработан с GWT.

Я думал, что все кнопки есть виджеты, но если вы посмотрите на сгенерированный HTML с Firebug, вы не видите атрибут OnClick, установленным на кликабельных Div. Интересно, как они достигают этого, имея элемент, который выпускает события, которые выпускают или Mousedown или, похоже, не являются виджетом, ни введенным с атрибутом OnClick.

Возможность создания таких компонентов, наверняка возьмет у меня еще один шаг к оптимизации производительности.

Спасибо. PS: Google тоже не собирался открыть код клиента. Не смог найти это.

Это было полезно?

Решение

То GWT Документация Показывает, как создавать обработчики в приложении GWT Java:

public void anonClickHandlerExample() {
  Button b = new Button("Click Me");
  b.addClickHandler(new ClickHandler() {
    public void onClick(ClickEvent event) {
      // handle the click event
    }
  });
}

Это будет генерировать HTML-элемент и связывает обработчик щелчка к нему. Однако на практике это имеет тот же результат, что и использование document.getElementById('element').onclick() на существующем элементе на вашей странице.

Другие советы

Вам не нужно ставить onclick Атрибут на HTML, чтобы у него был обработчик OnClick. Это очень простой пример:

<div id="mydiv">Regular old div</div>

Затем в скрипте:

document.getElementById('mydiv').onclick = function() { 
    alert('hello!');
}

Они не будут напрямую установить свойство OnClick, он был бы установлен в коде GWT или через другую библиотеку JavaScript.

Вы можете подключить функции к onclick событие с использованием JavaScript. Вот пример, используя jquery:

$(document).ready(function(){
    $("#div-id").click(function(){
        /* Do something */
    });
});

Если вы заинтересованы в оптимизации производительности вокруг этого, вам может потребоваться расследование делегирования событий в зависимости от вашей ситуации.

Событие Click генерируется для каждого элемента DOM в корпусе. Событие перемещается от тела до щелкновения элемента (если вы не используете Internet Explorer), попадает в щелчок элемента, а затем пузыри обратно. Событие может быть захвачено либо через атрибуты DOM-элемента, обработчики событий в JavaScript или атрибуты на любом из родительских уровней (пузырька или захватывающее событие триггеры это).

Я думаю, что они только что установили его в файле .js. Легко проводится с помощью JQuery с $ (документ). Например, ().

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top