Владимир55
16.10.2016 - 18:29
Использование jquery заметно тормозит открытие страницы, а функции у него очень просты - всего лишь подтянуть контент.
На странице такой код:
<script src="/js/jquery-1.7.1.min.js"></script>
<script src="/js/karta_index.js"></script>
<div id="karta_left"></div>
Содержимой скрипта karta_index.js:
$(document).ready(function() {
$('#karta_left').load('/pattern_left.php');
$('#karta_right').load('/pattern_right.php');
});
То есть, просто выводится содержимое файла pattern_left.php (но сделать это в данном случае надо именно через аякс).
Можно ли как-то уменьшить вес jquery, удалив из него лишнее ? Или чем-то легким его заменить?
AllesKlar
16.10.2016 - 19:09
Что за вопросы такие?
Нативный javaScrip же.
Неужели таки "вот и выросло поколение, которое ...."
https://www.sitepoint.com/jquery-vs-raw-jav...-3-events-ajax/
_____________
[продано копирайтерам]
sergeiss
16.10.2016 - 19:13
Прежде, чем "облегчать" jQuery, ответь на вопрос: сколько у тебя на странице картинок и какого они размера? Я готов поспорить, что если у тебя есть картинки, то их общий вес будет больше, чем у jQuery. Так что оптимизацию, возможно, надо начать с картинок, если уж совсем руки чешутся что-то поменять К тому же, jQuery кэшируется браузером и не грузится каждый раз (впрочем, как и картинки).
Но зато каждый раз грузятся эти два файла ПХП. На их загрузку наверняка и уходит основное время.
Короче говоря, прежде чем "рубить серпом"

немного подумай. Скорее всего окажется, что проблема в другом месте, а не объеме jQuery.
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)
Владимир55
16.10.2016 - 19:28
Цитата (sergeiss @ 16.10.2016 - 15:13) |
Я готов поспорить, что если у тебя есть картинки, то их общий вес будет больше, чем у jQuery. Так что оптимизацию, возможно, надо начать с картинок, если уж совсем руки чешутся что-то поменять |
Картинки есть, это Вы верно подметили. Но с ними уже разобрались - Гугл их сам оптимизировал.
Гугл делает замечание, что скрипты занимают много времени. jQuery их них самый тяжелый.
Не будет большим преувеличением сказать, что я в тексте по этой ссылке ничего не понял...
сам по себе jquery очень очень шустрый и оптимизированный. не факт, что на js вы напишите такой же функционал и он у вас будет работать быстрее, судя по вашему вопросу. у вас 99.9% того, что скорость загрузки съедает на jquery.
Игорь_Vasinsky
16.10.2016 - 20:51
Цитата |
// JavaScript Document $(document).ready(function() { $('#karta_left').load('/pattern_left.php'); $('#karta_right').load('/pattern_right.php'); }); |
а чёб на php не подтянуть эти файлы то?
Цитата |
(но сделать это в данном случае надо именно через аякс). |
ахахахах. ну если прям.
ониж без всякого условия влетают, сразу после загрузки страницы)))
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Владимир55
16.10.2016 - 20:53
Игорь, они и подключались через РНР, но их специально вынесли в Аякс по требованию оптимизатора.
vagrand
16.10.2016 - 20:55
Я недавно столкнулся с тем, что jquery выполняет dom операции в (IE очень не оптимально и очень долго. В каком браузере у вас проблемы? Если в IE тогда надо юзать натив для встраивания результата AJAX запроса в dom документ
_____________
Senior PHP developer: PHP5, MySQL, JavaScript, CakePHP, Yii/Yii2, Zend Framework, Smarty, XML/Xslt, JQuery, Jquery Mobile, Bootstrap, ExtJS, HTML, HTML5, CSS, Linux, SVN, Git, Memcached, Redis, MongoDB, Zend Guard, Ioncube, FFMpeg, PayPal, Webmoney, Qiwi, Facebook API, Vkontakte Api, Google API, Twitter Api, Steam Api.
Junior Android Developer: Android SDK, многопоточность, работа с HTTP запросами, JSON, SQLite, фрагменты.
Владимир55
16.10.2016 - 20:55
Цитата (depp @ 16.10.2016 - 16:43) |
сам по себе jquery очень очень шустрый и оптимизированный. |
Это так, но весит 90 Кб!
Цитата (depp @ 16.10.2016 - 16:43) |
не факт, что на js вы напишите такой же функционал и он у вас будет работать быстрее, судя по вашему вопросу. |
Вроде бы, как я слышал, Аякс можно стандартно обработать, убрав не нужный функционал. Для моей задачи может остаться 5-10 Кб.
AllesKlar
16.10.2016 - 21:44
Цитата (Владимир55 @ 16.10.2016 - 17:28) |
Не будет большим преувеличением сказать, что я в тексте по этой ссылке ничего не понял... |
мдя... бяда.... Как вообще в программирование занесло без базовых знаний английского???
Цитата (Владимир55 @ 16.10.2016 - 18:55) |
Вроде бы, как я слышал, Аякс можно стандартно обработать, убрав не нужный функционал. Для моей задачи может остаться 5-10 Кб. |
Я тебе больше скажу. Там останется несколько десятков байт.
Ajax
var r = new XMLHttpRequest();
r.open("POST", url, true);
r.onreadystatechange = function () {
if (r.readyState != 4 || r.status != 200) return;
console.log(r.responseText);
};
r.send("a=1&b=2&c=3");
Evens
document.getElementById("clickme").addEventListener("click", function(e) {
console.log("you clicked " + e.target);
e.preventDefault();
});
_____________
[продано копирайтерам]
Владимир55
16.10.2016 - 22:23
То есть, вместо
<script src="/js/jquery-1.7.1.min.js"></script>
в теле страницы пишем Ваш код:
<script type="text/javascript">
var r = new XMLHttpRequest();
r.open("POST", url, true);
r.onreadystatechange = function () {
if (r.readyState != 4 || r.status != 200) return;
console.log(r.responseText);
};
r.send("a=1&b=2&c=3");
document.getElementById("clickme").addEventListener("click", function(e) {
console.log("you clicked " + e.target);
e.preventDefault();
});
</script>
И далее как было:
<script src="/js/karta_index.js"></script>
<div id="karta_left"></div>
Это, конечно же, не работает, и я сам понимаю, что сделал что-то не так.
А как надо?
=========
Содержимое скрипта karta_index.js:
$(document).ready(function() {
$('#karta_left').load('/pattern_left.php');
});
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.