Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> загрузка js скриптов 
V
    Опции темы
DimaSiK
Дата 12.3.2010, 12:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 390
Регистрация: 20.8.2006

Репутация: нет
Всего: нет



Столкнулся со следующей проблемой. Загружаю средствами ajax часть html кода. В загружаемом html содержится вот такая вот конструкция:
Код

<link type="text/css" class="server-css" href="server.local/css/jquery.ui.all.css" rel="stylesheet" />
    
    <script type="text/javascript" src="http://server.local/js/ui/jquery.ui.core.js"></script>
    <script type="text/javascript" src="http://server.local/js/ui/jquery.ui.widget.js"></script>
    <script type="text/javascript" src="http://server.local/js/ui/jquery.ui.mouse.js"></script>
    <script type="text/javascript" src="http://server.local/js/ui/jquery.ui.draggable.js"></script>
    <script type="text/javascript" src="http://server.local/js/ui/jquery.ui.position.js"></script>
    <script type="text/javascript" src="http://server.local/js/ui/jquery.ui.resizable.js"></script>
    <script type="text/javascript" src="http://server.local/js/ui/jquery.ui.dialog.js"></script>
    <script type="text/javascript" src="http://server.local/js/functions.js"></script>

   <script type="text/javascript">
        $(document).ready(function(){
            
            $('#login-dialog').dialog({
                resizable: false,
                width:    350
            })
        })
    </script>


И проблема возникает в Crhome и Safari. Эти браузеры пытаются первее вызвать  $('#login-dialog').dialog нежеле чем загрузить необходимы скрипты. В Moziila и Opera все корректно обрабатывается. Вы можете посоветовать подключить все js файлы в исходном документе, в который все загружается, но нет, так я сделать не могу, таково задание. Есть ли из этого какой-либо выход? 


--------------------
Мы не стараемся быть первыми, мы стараемся быть лучшими.

PM MAIL   Вверх
DimaSiK
Дата 12.3.2010, 15:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 390
Регистрация: 20.8.2006

Репутация: нет
Всего: нет



Проблему решил следующим путем. Указный код разделил на две части: source(единый js файл) и html(непосредственно сам html со вставками js кода типа 
Код
$('#login-dialog').dialog(
 и так же сыы). Содержимое все подключаемых js файлов собрал в один большой all.scripts.js. Так как часть документа запрашивается кроссдоменно, общение в данном случаем реализовано через jsonp. Таким образом я возвращаю всегда ответ такого типа 
Код
{source: ссылка на all.scripts.js, html: код html}
. На клиенте, который инициирует запрос добавил следующее:  
Код

$.getScript($(json.source).attr('src'), function(){
                $('body').append(json.html);    
})


Таким образом мы получаем ссылку на all.scripts.js, подключаем его а потом уже внедряем запрашиваемый html. Второй параметр функции $.getScript обеспечивает подключение скриптов до того, как будет произведено к ним обращение. Метода работает во всех браузерах. Минусом конечно является большой all.scripts.js файл, плюсом - всего лишь один запроса к серверу, а размеры all.scripts.js можно убрать путем сжатия.

Это сообщение отредактировал(а) DimaSiK - 12.3.2010, 15:10


--------------------
Мы не стараемся быть первыми, мы стараемся быть лучшими.

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0439 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.