Безопасно ли вызывать YUI.add для одного и того же модуля более одного раза на одной странице? - PullRequest
0 голосов
/ 14 марта 2012

Я работаю в портальной среде.Я хочу, чтобы несколько портлетов использовали некоторые распространенные модули YUI.Я также хочу, чтобы портлеты были полностью автономными.Другими словами, я не хочу помещать вызов YUI.add в универсальный JS на уровне портала.

Итак, у каждого портлета есть копия одного и того же кода JS (добавляемого процессом сборки из общей зависимости, я не вручную не синхронизирую код между портлетами).Если на одной странице находится более одного портлета, это будет означать, что YUI.add будет вызываться каждым из них.Это вызовет проблемы?Я мог бы, вероятно, поместить все JS в отдельный сервлет и позволить динамическому загрузчику YUI позаботиться об этом, но это приведет к внешней зависимости.Чтобы эти портлеты работали, сервлет должен быть развернут ...

1 Ответ

0 голосов
/ 15 марта 2012

YUI отслеживает уже загруженные модули:

http://yuilibrary.com/yui/docs/api/files/yui_js_yui.js.html#l568

Каждый раз, когда вы вызываете YUI.add( в модуле, он просматривает экземпляры YUI и проверяет, загрузили ли они модуль еще. Если экземпляр не загрузил модуль, метод add предлагает модуль загрузчику экземпляра.

Таким образом, при избыточном вызове add есть небольшие накладные расходы, но это несерьезно.

...