Цепляем js-код после ajax в Drupal 7, продолжение экспериментов

Я нашел некоторые особенности того примера, что я давал вчера. Потому я решил немного ещё поэкспериментировать, чтобы дать более качественное решение.

Вот какие особенности я заметил у прошлого варианта:

  • Многократный bind кода и соответственно его многократный вызов. В некоторых случаях это не важно, но скорее всего приведет к неожиданным результатам.
  • Вторая особенность «подливает масла в котел» первой проблемы. Она заключается в том, что при одном запросе к серверу, могут быть сформированы несколько вызовов обработчика с разными контекстами.

Начну со второй проблемы — преодоления «мультиконтекста». Следует проверять в контексте какого контейнера идет вызов. Для этого можно проверить id контейнера или его класс:

Казалось бы это решает и проблему c привязкой к событию ‘ajaxSuccess’, т.е. многократный bind обработчика. Но тесты показывают, что это не так.

Вот в такой конфигурации, я отправлял данные формы webform по ajax:

В консоли раз за разом был виден инкремент зацепок к ajaxSuccess.

По моей логике, перезагружаемый контейнер должен был терять все свои «пользовательские» обработчики. Зацепка к ajaxSuccess может быть важна тем, что мы получаем доступ к передаваемым в результате ajax данным. Если это не так, что можно обойтись и без bind.

Написать комментарий

Мало букафф? Читайте есчо !

Есть ли аналог foreach в JS?

Май 3, 2017 г.

Веб-программирование - почти всегда это создание кода, с использованием нескольких языков программирования. Зная одни языки, вы ищите знакомые аналоги там, где не так твердо стоите на ногах. Есть ли в javascript оператор цикла foreach (аналог в PHP)? ...

Читать

Создаём ripple эффект

Апрель 29, 2017 г.

Ripple эффект - это анимация, визуально напоминающая расходящийся круг. Иногда накладывают несколько эффектов сразу и это выглядит как расходящиеся круги ...

Читать

 

Комментарии к «Цепляем js-код после ajax в Drupal 7, продолжение экспериментов»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: