Таким образом, мы имеем таблицу с большим количеством флажков, OnChange из флажка мы хотим вызвать некоторый яваскрипт мы используем что-то похожее на этом сниппаютEvent.observe неэффективен с прототипом javascript, альтернативы?
addEventObserver(elementId){
// ($= means 'ends with') this is required for elementIds which are in a table and get prepended with some id
$$('[id$=:'+elementId+']').each(function(e) {
Event.observe(e, 'change', function(event) {
submitAction(something);
});
});
}
Так ниже входной флажка мы добавим вызов в яваскрипте функции
<input type="checkbox" name="somename" id="somePrependedIdsomeId">
<script type="text/javascript" language="javascript">
addEventObserver('someId');
</script>
это прекрасно работает с нашими настройками тестовой среды. В производстве, хотя у нас есть таблицы с ~ 700 флажками, и это заставляет браузер/cpu застревать.
Мы используем JSF
также отличная точка. Один обработчик событий против700 обработчиков событий, безусловно, повысят производительность. – Scottie
только вопрос ... theDiv.onchange ведет себя так же, как Event.observe? Я просто столкнулся с странным поведением с совместимостью, когда дело доходит до событий ... например. – Toskan
@Toskan - Используете ли вы Prototype для простого JS? Какой браузер? – karim79