Как убедиться, что скрипт выполняется один раз и только один раз - PullRequest
4 голосов
/ 29 ноября 2011

Я пишу шаблон виджета, который будет включен на страницу, где он установлен.

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

Теперь я написал JavaScript для инициализации виджета, вы знаете, щелчков и зависаний.

Моя проблема в том, что эти <script> выполняются, например, несколько раз, когда я что-то щелкаю, ограниченная функция выполняется несколько раз.

Как лучше всего решить эту проблему?

РЕДАКТИРОВАТЬ: Кстати, я использую шаблонный движок Mako, и я пытался использовать переменную c для хранения логического флага, но кажется, чтоc переопределяется каждый раз.

1 Ответ

4 голосов
/ 29 ноября 2011

Как насчет решения, подобного тому, которое использовалось в C для предотвращения многократного включения заголовочных файлов?

Например, в файле "example.html" вы можете заключить код вif-оператор вроде этого:

<script type=text/javascript>
    if (!window._EXAMPLE_HTML_) {
        window._EXAMPLE_HTML_ = true;
        // your code goes here
    }
</script>
...