ФорумПрограммированиеJavaScript → js sctipts&styles preloader

js sctipts&styles preloader

  • Абырвалг

    Сообщения: 6476 Репутация: N Группа: Джедаи

    Spritz 10 апреля 2010 г. 5:36

    Так как я решил использовать Ext (а он поистине дофига весит), нужно как-то организовать красивую подгрузку файлов сценариев и стилей. Может быть с информацией: сейчас подгружается ext-adapter-jquery а может с процентами.

    Да, мои BL автоматически будут gzipp'ить файлы и отправлять кеширующие заголовки, таким образом ext-all будет весить не 661,3 кб а где-то 173,3 кб. Но это все равно многовато.

    Итак, есть событие onload, которое не работает в блядском IE. Так как у меня все js и css-файлы подключаются через один класс (BL_Page) я легко могу поменять шаблон с
    $str .= '<script src="' . $this->dirs['javascripts'] . '/' . htmlspecialchars($file) . '.js?' . $r . '" type="text/javascript"></script>' . "\n";

    на
    $str .= '<script src="' . $this->dirs['javascripts'] . '/' . htmlspecialchars($file) . '.js?' . $r . '" type="text/javascript" onload="alert(1)"></script>' . "\n";

    привет, всем, кто говорил, что это хуевая затея использовать Page для хранения всех js/css файлов, которые нужны странице. Это абстракция

    Но:
    1) что-то я не соображу что делать по этому load'у.
    2) кроме того, что load не работает в IE, его нет для файлов стилей
    3) хочется что бы показывало Ъ-проценты, то есть брало размер файла, суммировало размер всех файлов, при загрузке каждого файла пересчитывало проценты. Как это сделать? либо в Page перед выгрузкой проходиться по файловой системе и узнавать размер каждого файла - что довольно медленно и глупо, либо же подгружать все js при помощи js (и перед загрузкой брать заголовок Content-Length) - что тоже плохо, так как все наши кеширующие заголовки уходят.


    как быть?
    Спустя 80 сек.
    да, всегда остается вариант не ебать мозг, показывать какую-то картинку-загрузку, которую будем прятать по Ext.onReady или $().
  • Абырвалг

    Сообщения: 6476 Репутация: N Группа: Джедаи

    Spritz 10 апреля 2010 г. 5:43, спустя 7 минут 25 секунд

    http://habrahabr.ru/blogs/webdev/46210/

       1. $data['js'] = array(
    2. array('path' => 'jquery-1.2.6.min.js', 'size' => filesize($jsRoot.'/jquery-1.2.6.min.js')),
    3. array('path' => 'functions.js', 'size' => filesize($jsRoot.'/functions.js'))
    4. );
    5. $data['im'] = GetFiles($imgRoot, true);
    6. $data['invoke'][] = array(
    7. 'action' => 'loadTemplates',
    8. 'size' => GetDirSize(dirname(__FILE__).'/design/ajax templates/', false)
    9. );
    10. $data['jspath'] = '/design/js/';
    11. $data['impath'] = '/design/im';


    вот, кстати, не я один подумал про filesize через похапэ. Но, блин, каждый раз перед выводом странички проходиться по 4-7 css/js файлам не очень хочется.
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 10 апреля 2010 г. 5:53, спустя 10 минут 14 секунд

    блоги на пиха.ру
    Сапожник без сапог
  • Абырвалг

    Сообщения: 6476 Репутация: N Группа: Джедаи

    Spritz 13 апреля 2010 г. 3:35, спустя 2 дня 21 час 41 минуту

            <script type="text/javascript">document.getElementById('loading-msg').innerHTML = 'Loading Core API…';</script>
    <script type="text/javascript" src="../adapter/ext/ext-base.js"></script>
    <script type="text/javascript">document.getElementById('loading-msg').innerHTML = 'Loading UI Components…';</script>
    <script type="text/javascript" src="../ext-all.js"></script>
    <script type="text/javascript">document.getElementById('loading-msg').innerHTML = 'Initializing…';</script>
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 13 апреля 2010 г. 9:24, спустя 5 часов 49 минут 23 секунды

    Абырвалг, забавно, не думал что так просто и гениально, это ты с гугля ебнул?
    Сапожник без сапог
  • Абырвалг

    Сообщения: 6476 Репутация: N Группа: Джедаи

    Spritz 13 апреля 2010 г. 9:39, спустя 14 минут 19 секунд

    не, так работает http://www.extjs.com/products/extjs/ , который сейчас не работает, хе-хе

    Нужно читать как работают браузеры, что в какой последовательности загружают и тд. Но мне лень
  • Josh

    Сообщения: 2008 Репутация: N Группа: Кто попало

    Spritz 28 апреля 2010 г. 13:01, спустя 15 дней 3 часа 22 минуты

    а почему бы всё не собрать в один файл, и заминимайзить его? Естественно я про релиз. А при разработке локалхост и так шустро грузит
  • ЗлобныйТролль

    Сообщения: 50 Репутация: N Группа: Кто попало

    Spritz 30 апреля 2010 г. 5:41, спустя 1 день 16 часов 39 минут

    Josh, +1.

Пожалуйста, авторизуйтесь, чтобы написать комментарий!