У меня есть диалоговое окно jQuery, содержимое которого определяется iframe. Пока не отобразится диалоговое окно, содержимое этого iframe невидимо. В IE выполняется это содержимое и связанный с ним javascript, поэтому при отображении диалогового окна становится очевидным, что javascript уже завершил всю свою загрузочную работу. Но в браузерах, отличных от IE, таких как Firefox и Chrome, этот iframe снова выполняет свой javascript до того, как диалоговое окно станет видимым, но затем, по-видимому, re - выполняет его, когда отображается диалоговое окно.
Поскольку это довольно дорогой iframe для создания (большое количество javascript выполняется с помощью вызовов ajax и все такое), я не хочу, чтобы браузер оплачивал стоимость его инициализации дважды. На самом деле, я могу сказать, что хочу отложить инициализацию до тех пор, пока диалог фактически не будет запущен. Но независимо от того, будет ли он инициализирован до того, как будет запущен, а затем сохранит эту инициализацию (как это делает IE), или он просто откладывает инициализацию до тех пор, пока диалоговое окно не станет видимым, я мог бы согласиться на любое из них.
Я не могу согласиться с тем, что я вижу сейчас, когда браузеры, отличные от IE, инициализируются дважды, при этом первый раз является полной тратой, поскольку они повторно инициализируются при появлении диалогового окна.
Страница, на которую я ссылаюсь: http://openidux.dotnetopenauth.net/. Вы можете воспроизвести поведение, щелкнув ссылку «Вход» в правом верхнем углу.
Спасибо.