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

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

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

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

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

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

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

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

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

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

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

Обмен данных Angular с бек-энд на PHP

Ноябрь 11, 2016 г.

Стоит ли рассказывать, что Ангуляр при всей своей прелести лишь одна сторона медали - frontend, который как то должен взаимодействовать со второй половинкой ...

Читать

Связанные списки select с получением данных по ajax

Декабрь 15, 2016 г.

В прошлый раз я показывал как можно "на лету" создавать списки html select, данные которых содержались в специальном javascript массиве. Подготовить такой ...

Читать

 

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

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



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