Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Адаптивная верстка и JS (https://javascript.ru/forum/misc/52893-adaptivnaya-verstka-i-js.html)

Mokkey 12.01.2015 00:08

Адаптивная верстка и JS
 
Для корректной работы адаптивной вёрстки есть задача в зависимости от разрешения экрана отключать определенные JS-файлы.

Прямая аналогия с @media для CSS.

Искал, гуглил, читал. Но реально работающего решения, увы, так и не нашел.

Находил вот такой пример, но у меня он так и не заработал. Возможно, пример с ошибкой, возможно я что-то делаю не так (для меня эта область — тёмный лес).

Как можно максимально просто и элегантно решить мою задачу? Заранее большое спасибо за помощь!

window.onload = windowload;
    window.onresize = AppendScript;
 
    function windowload() {
        AppendScript();
    }
 
 
    function AppendScript() {
 
        if (window.innerWidth >= 940) {
            Include('site/js/stick.js', 'on')
            Include('site/js/stick-mobile.js', 'off')
        }
        else {
            Include('site/js/stick.js', 'off')
            Include('site/js/stick-mobile.js', 'on')
        }
    }
 
    function Include(filename, status) {
        var head = document.getElementsByTagName('head')[0];
        if (status == 'on') {
            script = document.createElement('script');
            script.src = filename;
            script.type = 'text/javascript';
            head.appendChild(script)
        }
        else if (status == 'off') {
            var scripts = head.getElementsByTagName('script');
            if (scripts.length > 0) {
                head.removeChild(scripts[1]);
            }
        }
    }

danik.js 12.01.2015 06:51

Цитата:

Сообщение от Mokkey
head.removeChild(scripts[1]);

Какой в этом смысл? Скрипт исполнится как только загрузится. Причем процесс загрузки блокирует все основное - ты сможешь что-то сделать только после того как скрипт загрузился и выполнился.
Цитата:

Сообщение от Mokkey
просто и элегантно решить мою задачу?

Больше инфы. Возможно это тебе не нужно? Много кода? Сколько в КБ? Какого рода отключаемый скрипты? Смысл в их отключении - экономия трафика?


Часовой пояс GMT +3, время: 01:47.