Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   Как отложить синтаксический анализ javascript? (https://javascript.ru/forum/css-html/30529-kak-otlozhit-sintaksicheskijj-analiz-javascript.html)

Ingiborn 10.08.2012 19:40

это через replace?

Deff 10.08.2012 19:45

<!DOCTYPE html>
<html lang="en-US" dir="ltr">
<head>
<meta charset="UTF-8" />
<link rel="stylesheet" type="text/css" href="/style.css" />
</head>
<body id="home-">
<div id="top_block">
<div class="stripe">
<div class="main">
<div class="container_12">
<div class="grid_12">
<div class="header">
<div class="wrapper">
<div>
<a class="logo" href="">Главная</a>
</div>
<div class="log_box extra_wrapper">
</div>
<div class="links f_left"></div>
</div>
</div>
<div class="slider_box">
<div class="slider_shadow">
<div id="slider" class="slider">
<a href="a>
<a href="a>
<a href="a>
<a href="a>
</div>
</div>
<a href=""></a>
<a href=""></a>
</div>
<div class="nav" id="menu">
<ul class="menu">
<li><a href="">Текст</a></li>
<li><a href="">Текст</a></li>
<li><a href="">Текст</a></li>
<li><a href="">Текст</a></li>
<li><a href="">Текст</a></li>
<li><a href="">Текст</a></li>
<li><a href="">Текст</a></li>
<li><a href="">Текст</a></li>
</ul>
<div class="clear"></div>
</div>
</div>
</div>
<div class="clear"></div>
</div>
<div class="clear"></div>
</div>
<div class="main">
<div id="content" class="cont_pad">
<div class="container_12">
<div class="wrapper">
<div class="grid_7">
<div class="wrapper business">
<a href="a>
<a href="a>
<a href="a>
<a href="a>
<a href="a>
<a href="a>
<br />
<br />
<br />
<h1>Текст</h1>
<p>Текст</p>
</div>
</div>
<div class="grid_5">
<div class="pad_box">
<form action="" method="post" id="contact-form">
<fieldset>
<label class="name">
<input type="text" name="name" value="" /><span class="error">*Неверное имя.</span><span class="empty"></span>
</label>
<label class="email">
<input type="text" name="email" value="" /><span class="error">*Неверный емейл.</span> <span class="empty"></span>
</label>
<label class="message">
<textarea cols="" rows="" name="comment"></textarea><span class="error">*Неверный коментарий.</span><span class="empty"></span>
</label>
<div class="buttons2">
<a id="submit" type="button" class="button"></a>
</div>
</fieldset>
</form>
<div id="log"></div>
</div>
<div class="pad_box">
<div class="testilist"></div>
<br />
</div>
<div class="pad_box">
<div class="articlelist"></div>
<ul class="list2">
<li><a href="">Текст</a></li>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="main">
<div id="content-ridge">
<div class="content-wrapper">
<div class="recent-work">Новое</div>
<div id="case-study-screenshots">
<img id="stack-position-1" data="a1" class="case-study-screenshot left-position loading" data-original="image-1" title="" />
<img id="stack-position-2" data="a2" class="case-study-screenshot active-position loading" data-original="image-2" title="" />
<img id="stack-position-3" data="a3" class="case-study-screenshot right-position loading" data-original="image-3" title="" />
</div>
<div id="case-study-nav">
<a class="button prev" href=""></a>
<a class="button next" href=""></a>
</div>
</div>
</div>
</div>
</div>
</div>
<script type="text/javascript" charset="utf-8" src="/jquery-1.6.1.min.js"></script>
<script type="text/javascript">$(window).load(function(){$.getScript("/jquery-ui.min.js");$.getScript("/jquery.easing.1.3.js");
$("#case-study-screenshots img").each(function() {
  var data= $(this).attr("data");
   $(this).attr("src",data);
});
$.getScript("/jquery.cycle.all.min.js");$.getScript("/jquery.lazyload.js");$.getScript("/menu-up-home.js");$.getScript("/compressed.js");$.getScript("/forms.js");$.getScript("/jquery.form.js");});</script>

</body>
</html>

ccылку на картинку помещаем в data="Тут"

Ingiborn 10.08.2012 19:57

Спасибо!!!
Это идеальный вариант!
Я всё ещё жду вас у себя в личке!

Ingiborn 10.08.2012 20:07

Хотел попросить модераторов почистить тему от моих нелепых сообщений, и как то выделить её, поскольку искал информацию на эту тему в интернете, вообще нечего не нашёл, кроме lazyload.
Информация полезна тем, кто бореться за скорость загрузки сайтов.

Ingiborn 10.08.2012 23:04

Появился новый вопрос=)
После отправки get запроса, он начинает кешироваться, и урл становиться таким /forms.js?_=1344625392945
как дать понять браузеру, что кеширование запросов не требуется?

Deff 10.08.2012 23:08

Цитата:

Сообщение от Ingiborn
После отправки get запроса, он начинает кешироваться, и урл становиться таким /forms.js?_=1344625392945

Ну можно добавить случайный параметр - ежли не повредит
/forms.js?_='+Math.random();

Ingiborn 10.08.2012 23:14

<script type="text/javascript">$(window).load(function(){$.getScript("/jquery-ui.min.js?_='+Math.random();");});</script>

вот так? если да, то всё равно кешируется

Ingiborn 10.08.2012 23:17

а то получается динамический урл, а мне нужен статический..
просто стандартный /jquery-ui.min.js

Ingiborn 10.08.2012 23:19

я неверно написал..
точнее мне надо чтобы файл джава скрипты кешировались, а поскольку урл динамический, с каждой переходом на новую страницу, скрипт снова подгружает плагины jq

Deff 10.08.2012 23:20

Ingiborn,
Для jquery-ui.min.js вам не нужен никакое дополнение и как раз кешируемость это отлично для постоянных библиотек

Некешируемость нужна только для изменяемого контента скриптов!

Deff 10.08.2012 23:23

Ingiborn,
Почему url у Вас динамический ?

<script type="text/javascript">$(window).load(function(){$.getScript("/jquery-ui.min.js");});</script>

Ingiborn 10.08.2012 23:24

Прочитайте пост 89, я там описал, в предыдущем я ошибся..

Ingiborn 10.08.2012 23:25

он делает get запрос, и урл получается такого плана /jquery-ui.min.js?_=1344625392945

Ingiborn 10.08.2012 23:25

jquery наверно добавляет что-то..

Deff 10.08.2012 23:36

Ingiborn,

Начнем сначала - зачем скрипты подгружать в конец ?

Ingiborn 10.08.2012 23:39

Отложив их загрузку, сэкономив траффик, дав стилям и изображениям из стилей загрузиться быстрей

melky 10.08.2012 23:43

Цитата:

Сообщение от Ingiborn (Сообщение 196441)
Отложив их загрузку, сэкономив траффик, дав стилям и изображениям из стилей загрузиться быстрей

так то для этого есть атрибуты defer и async ... зачем костыли то городить?

сэкономив трафик? каким образом он экономится, если скрипты всё равно все грузятся?

Ingiborn 10.08.2012 23:47

в чём костыли то?
Сделал deff кроссбраузерную функцию..
Я же написал, сэкономив траффик, дав стилям и изображениям из стилей загрузиться быстрей

Ingiborn 10.08.2012 23:48

async в мозиле срабатывает через раз

melky 10.08.2012 23:51

Цитата:

Сообщение от Ingiborn
Я же написал, сэкономив траффик, дав стилям и изображениям из стилей загрузиться быстрей

он не экономится, т.к. всё равно всё загружается, просто в другом порядке. зрительно просто сайт начинает загружаться быстрее.
Цитата:

Сообщение от Ingiborn
async в мозиле срабатывает через раз

в первый раз слышу. можете кинуть пруф?

Ingiborn 10.08.2012 23:56

я и имею ввиду, что экономится траффик на первоначальной загрузке стилей и их изображений, а потом уже идёт изображения из тега img

чуть позже выложу скриншот, с подключёнными плагинами jq, и гугловским апи через асинхронную загрузку, когда он не срабатывает

Ingiborn 10.08.2012 23:57

особенно гугловская фича plusone через асинхронную загрузку

Deff 11.08.2012 00:08

Ingiborn,
Суть в том - что на скриптах вы съэкономите ток при первой загрузке, - далее - завтра - после завтра и на следущей страницы прямо сейчас - при статической вставке - они не грузяцо - просто взять и вставить
<script type="text/javascript" src="/jquery-ui.min.js"></script>

Вставить сразу же после jquery

Ingiborn 11.08.2012 00:12

да это я знаю.. далее кеширование браузером идёт
а вдруг у меня в настройках выставленны после каждого отключения браузера чистка кеша?(это я щас про сафари)
а у меня акцент именно на пользователей, иностранных, 1/3, 1/4 пользуются там именно данным браузером..
так из урла через get это получается убрать нельзя?

Deff 11.08.2012 00:16

Цитата:

Сообщение от Ingiborn
а вдруг у меня в настройках выставленны после каждого отключения браузера чистка кеша?(это я щас про сафари)
а у меня акцент именно на пользователей, иностранных, 1/3, 1/4 пользуются там именно данным браузером..

Ыы можно обмануть всех - но имхо лучше поюзать сайт - ну нормальный сайт должен загружацо за две - три секунды - если иначе - значит либо организация данных или её подгрузки не те,

Ingiborn 11.08.2012 00:26

сайт загружается у меня за 300ms, то есть, буквально браузер ответ сервера получил, и всё уже проявилось..
просто хочу, надеюсь не много хочу, чтобы так каждые свои проекты доводить до идеала!
у зарубежных большинства зарубежных хостингов нету gzip, тем самым они пытаются снизить нагрузку на сервер, а если будет высоконагруженный сайт в большим количеством запросов, то думаю данные методы сыграют отличную роль в его загрузке..

Deff 11.08.2012 00:37

Ingiborn, Ой конечно быть максималистом оч хорошо - но вот пример вчерашний - сервис бесплатных форумов более полумиллиона форов -воть фишки последнего решени госдумы -в местный районный суд идёт жалоба от потерпевшго на контент одного из форумов - суд перекрывает весь домен хостинга... Так шо скорость загрузки - дня два на разборки

Ingiborn 11.08.2012 00:46

Цитата:

Сообщение от Deff (Сообщение 196477)
Ingiborn, Ой конечно быть максималистом оч хорошо - но вот пример вчерашний - сервис бесплатных форумов более полумиллиона форов -воть фишки последнего решени госдумы -в местный районный суд идёт жалоба от потерпевшго на контент одного из форумов - суд перекрывает весь домен хостинга... Так шо скорость загрузки - дня два на разборки

Тут всё зависит от ситуации, какой контент, и что хочет сам потерпевший..
Уходим от темы конечно=)
Так убрать вот эти цифорки в конце файла через get запрос нельзя получается?
Вообще конечно склоняюсь к прокси серверу, но доступа рута к серверу нету, поскольку это обычный хостинг..

Deff 11.08.2012 00:51

Цитата:

Сообщение от Ingiborn
Так убрать вот эти цифорки в конце файла через get запрос нельзя получается?

Можно
$.ajax({
  type: "GET",
  url: "test.js",
  cache: false,
  dataType: "script"
});

Ingiborn 11.08.2012 00:59

можно на моём примере?
<script type="text/javascript">$(window).load(function(){$.getScript( "/jquery-ui.min.js");});</script>
я с языком на стороне клиента совсем не знаком(javascript имею ввиду)

Deff 11.08.2012 01:04

<script type="text/javascript">
$(window).load(function(){
  $.ajax({
    type: "GET",
    url: "/jquery-ui.min.js",
    cache: false,
    dataType: "script"
  });
});
</script>

Ingiborn 11.08.2012 01:16

всё равно данные цифорки на конце присутствуют..

Deff 11.08.2012 01:17

Ingiborn,

Во Всех браузерах так ?

Ingiborn 11.08.2012 01:18

в мозиле точно

Deff 11.08.2012 01:19

Ingiborn,
Юзайте тады первую версию с циклом for

Deff 11.08.2012 01:20

<script type="text/javascript">
$(window).load(function(){
Link=[];
Link[0]='test1.js';
Link[1]='test2.js';
Link[2]='test3.js';

for(var i=0; i<Link.lehgth; i++) {
   var js = document.createElement('script');
   js.setAttribute('src',Link[i]);
   alert(js.getAttribute('src'))
   document.body.appendChild(js)
}
});
</script>

Ingiborn 11.08.2012 01:30

не подгружаются линки..

Deff 11.08.2012 01:35

Ingiborn,
Вы jquery начальную библиотеку - не втыкивайте - поскольку
там же $(window).load(function(){ - который её использует- jquery нужно грузить как и ранее до подгрузки остального


хотя...

<script type="text/javascript">
document.body.onload = function(){
Link=[];
Link[0]='test1.js';
Link[1]='test2.js';
Link[2]='test3.js';

for(var i=0; i<Link.lehgth; i++) {
   var js = document.createElement('script');
   js.setAttribute('src',Link[i]);
   //alert(js.getAttribute('src'))
   document.body.appendChild(js)
}}
</script>

Ingiborn 11.08.2012 01:40

я не втыкаю, шквери всегда первая, это я усвоил.

Ingiborn 11.08.2012 01:49

всё равно, не подгружаются..
и ошибок не выдаёт.


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