Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Отслеживание загрузки файла

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Bio man
Отправлено: 24 Октября, 2013 - 20:35:03
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




В шапку динамически вставляется тег link с ссылкой на CSS файл.
Можно ли как то понять, что этот файл загрузился?
 
 Top
teddy
Отправлено: 24 Октября, 2013 - 20:59:48
Post Id


Участник


Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013  


Помог: 91 раз(а)




Так это же сразу становится заметно визуально. Но если нужно что либо совершить программно только в том случае, если файл со стилем подгружен, могу предложить следующее:

Например достать какой нибудь элемент, к которому имеет отношение один из стилей, содержащийся в нужном CSS файле. Если данный элемент обладает тем стилем, который может быть присвоен только из подгружаемого файла, значит файл подгрузился

Приблизительно так:
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. var element = document.getElementById('vasya');
  3. if(element.style.color == 'red'){
  4.     что то делаем
  5. }
  6.  

(Отредактировано автором: 24 Октября, 2013 - 21:02:42)

 
 Top
Bio man
Отправлено: 24 Октября, 2013 - 21:04:55
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




Вот так получилось!
CODE (javascript):
скопировать код в буфер обмена
  1. $('link').on('load', function(){
  2.         // do something
  3. })

(Добавление)
Блин, на телефоне не работает...
Какие еще могут быть варианты?

(Отредактировано автором: 24 Октября, 2013 - 21:06:05)

 
 Top
Panoptik
Отправлено: 25 Октября, 2013 - 01:13:20
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


Помог: 131 раз(а)




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

метод не совсем ровный в плане разработки, так как был первый проект на бекбоне
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2.  
  3. /**
  4.      * insert script into DOM and call callback function on complete load
  5.      */
  6.     Helpers.GetScript = function(path, callback) {
  7.         if(path) {
  8.             var baseDir = 'js/';
  9.             var url = baseDir + path + '.js';
  10.            
  11.             var script = document.createElement("script");
  12.             script.src = url;
  13.             script.onload = script.onreadystatechange = function(){
  14.                 script.onreadystatechange = script.onload = null;
  15.                 if(typeof callback == 'function') {
  16.                     callback();
  17.                 }
  18.             }
  19.             var head = document.getElementsByTagName("head")[0];
  20.             (head || document.body).appendChild( script );
  21.         }
  22.     };
  23.  
  24.  


использовалось в связке с этим

Спойлер (Отобразить)


этот способ нормально работал на телефоне. он впринципе был рассчитан для телефонов, но не как веб приложение, а через phonegap

но в случае цсс я бы посоветовал иметь всего один общий файл и грузить его сразу в index.html и на онлоад уже вызывать запуск бекбон приложения


-----
Just do it
 
 Top
tuareg
Отправлено: 25 Октября, 2013 - 06:55:59
Post Id


Участник


Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010  


Помог: 69 раз(а)




 
 Top
nerv
Отправлено: 25 Октября, 2013 - 11:41:54
Post Id



Посетитель


Покинул форум
Сообщений всего: 407
Дата рег-ции: Февр. 2013  
Откуда: Россия


Помог: 9 раз(а)




интересный вопрос Улыбка

вот что удалсь нагуглить:
- Here's what is, in my opinion, a better solution for this issue that uses the IMG tag and its onerror event
- Today, all modern browsers support the onload event on link tags

остальное в этих же темах трюки с setTimeout/setInterval на предмет проверки применяемого стиля (вывод на основании беглого просмотра)

отпиши потом о результатах )


-----
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
 
 Top
armancho7777777 Супермодератор
Отправлено: 25 Октября, 2013 - 11:58:29
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




Bio man пишет:
В шапку динамически вставляется тег link с ссылкой на CSS файл.

Bio man пишет:
Какие еще могут быть варианты?

Ну, можно так ещё (c jQ):
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. $('<style />').appendTo('head').load('style_file.css', function(e) {
  3.     alert('Стили загружены');
  4. });
  5.  
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB