Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 26.06.2011, 15:12
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

да

перепиши этот кусок через $.ajax.

поставь там async : false
Ответить с цитированием
  #12 (permalink)  
Старый 26.06.2011, 15:23
Аспирант
Отправить личное сообщение для jayson Посмотреть профиль Найти все сообщения от jayson
 
Регистрация: 31.03.2011
Сообщений: 38

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

это так?


и вот что хотел узнать , если страница с которой получает значение мой скрипт, весит 100КБ - он на самом деле то всю страницу прогружает себе в память?

так как это значение можно получить еще со сотаницы которая весит 30 кбайт

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

Последний раз редактировалось jayson, 26.06.2011 в 15:28.
Ответить с цитированием
  #13 (permalink)  
Старый 26.06.2011, 15:51
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

да, прогружает. но на время, пока сборщик мусора не придет. когда он приходит? написано почти в каждом учебнике.

грузит он всю страницу, потом выбирает оттуда #div, который указан, и возвращает как DATA

разницы нет, т.к. разбор данных начинается после полной загрузки страницы.

используй колбеки, одним словом, если не хочешь синхронно. тут я описал его чуть-чуть
Ответить с цитированием
  #14 (permalink)  
Старый 26.06.2011, 15:58
Аспирант
Отправить личное сообщение для jayson Посмотреть профиль Найти все сообщения от jayson
 
Регистрация: 31.03.2011
Сообщений: 38

разве нет разницы сколько ему грузить каждый раз 30 или 100 килобайт?

так ты скажи синхронно использовать это не этично?

скажи как будет грамотнее

какие последствия синхронного использования, ведь дефолтно асинхронно


(Local Event) и (Global Event) в чем разница?

Последний раз редактировалось jayson, 26.06.2011 в 16:08.
Ответить с цитированием
  #15 (permalink)  
Старый 26.06.2011, 17:22
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

синхронно использовать - замораживать интерфейс. создается ощущение тормозов.

не знаю
Ответить с цитированием
  #16 (permalink)  
Старый 26.06.2011, 17:49
Аспирант
Отправить личное сообщение для jayson Посмотреть профиль Найти все сообщения от jayson
 
Регистрация: 31.03.2011
Сообщений: 38

Спасибо melky

самый отзывчивый человек (по мне),

Последний раз редактировалось jayson, 27.06.2011 в 03:31. Причина: а то нитак поймут
Ответить с цитированием
  #17 (permalink)  
Старый 27.06.2011, 20:41
Аспирант
Отправить личное сообщение для jayson Посмотреть профиль Найти все сообщения от jayson
 
Регистрация: 31.03.2011
Сообщений: 38

Парни подскажите, вот я получил некоторую информацию и начал тестировать

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

function checkme() {
$('#div_1').html( $('#div_1').load('page.php #div_value').text() );
var ck_value = $('#div_1').text();
if (ck_value == "") {
$("#div_body").load('error.php');
}
else {
$("#div_body").load('ok.php');
}
}


то в div_1 загружается только значение со страницы page.php из div_value
и все окей, но страница имитирует лаг
прочитал что синхронный режим используют нубы т.к. это старье и в 99 процентов можно использовать асинхронный



---------------------далее я использую асинхронный режим и что я вижу

ну во первых в div_1 вставляется не только значение, но и div_value который его собственно и окружает

СВЕРЕНИЕ ЗНАЧЕНИЙ работает некорректно то error.php выскакивает то ok.php

мне тут подсказывали насчет таймеров всяких я подставил тайминг и соответственно error.php и ok.php стало работать правильно, всмысле в тех ситуациях в которых они и должны появляться, НО если интернет загружен то соответственно какойто бред получается, опять то эррор то ок
я так понимаю это из-за того чтоне успевает чтоли проверять, я заметил это из-за того что поставив таймер както стало различаться значения

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



И ВОТ ЧТО ЕЩЕ смотрите на этот код


$('#div_1').html( $('#div_1').load('page.php #div_value').text() );


расшифровка, в div_1 загрузить с такой то страницы такое то див


тут еще стоит код .html
он вроде должен сделать так если <div id="div_1">ВЫВОД_ЗНАЧЕНИЯ</div> - да так он делает если синхронно
<div id="div_1"><div id="div_value">ВЫВОД_ЗНАЧЕНИЯ</div></div> - а так он загружает если асинхронный, блин как сделать чтобы <div id="div_value"></div> не загружался








И ЕЩЕ ВОПРОС

опять же код
$('#div_1').html( $('#div_1').load('page.php #div_value').text() );


если сделать так
$('body').load('page.php #div_value').text();


то он все что в боди очищает
я что хочу узнать , А НЕЛЬЗЯ СДЕЛАТЬ ЧТОБЫ ЭТО ДОБАВЛЯЛОСЬ В СТРАНИЦУ ВНУТРЬ ТЕГА БОДИ
а то надо создавать див , указывать что в этот див загружать, для меня удобне чтобы просто в боди записывался


вроде пока все))
Ответить с цитированием
  #18 (permalink)  
Старый 27.06.2011, 21:06
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

могу только посоветовать взять в руки debugger и отлаживать код.
кроме вас самих, лучше никто помочь не сможет удачи
Ответить с цитированием
  #19 (permalink)  
Старый 27.06.2011, 21:24
Аспирант
Отправить личное сообщение для jayson Посмотреть профиль Найти все сообщения от jayson
 
Регистрация: 31.03.2011
Сообщений: 38

melky ты ведь компитентен в том что я написал , разъясни мне пожалуйста
Ответить с цитированием
  #20 (permalink)  
Старый 28.06.2011, 01:19
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от jayson Посмотреть сообщение
прочитал что синхронный режим используют нубы т.к. это старье и в 99 процентов можно использовать асинхронный
я бы не сказал, что его используют нубы и в 99 % процентов случаев можно использовать асинхронный, его можно использовать всегда

где ты это прочитал?

Сообщение от jayson Посмотреть сообщение
ну во первых в div_1 вставляется не только значение, но и div_value который его собственно и окружает

СВЕРЕНИЕ ЗНАЧЕНИЙ работает некорректно то error.php выскакивает то ok.php
надо переписать скрипт (в конце поста)


Сообщение от jayson Посмотреть сообщение
вообщем что хочу спросить, почему когда синхронный запрос, то он как дядя петя пока не получит значение не выведет то что нужно приказать при этих значениях, а если асинхронно то ему наплевать как стрекозе наташе, что нужно сделать , ведь вы про, вы знаете еще какие коды можно применить, ведь тайминг может это бред и можно как то сделать правильно чтобы все работало
потому что он синхронный, как дядя ваня после запоя. делает одно дело одновременно...

а бабочка наташа асинхронна, она умеет делать два дела одновременно : делает дела синхронного алкаша дяди вани и свои , асинхронные, дела.

нихрена не понятно самому

короче, синхронность-заморозка, асинхронность-события и их обработчики (колбеки)

Сообщение от jayson Посмотреть сообщение


$('#div_1').html( $('#div_1').load('page.php #div_value').text() );


если сделать так
$('body').load('page.php #div_value').text();


то он все что в боди очищает
хм. расставлю везде алерты, напишешь вывод

у меня файл ajax.php, в котором

<div id="div_value">123</div>

на странице такой HTML
<div id="div_1"></div>
<div id="div_body"></div>

и такой скрипт
$('#div_1').load('ajax.php #div_value', function(a){
        
        console.log("пришло : "+a)
        a=a.replace(/<.+>(.*)<.+>/,"$1")
        console.log("стало : "+a)
        console.log(  "Мы будем загружать : "+(a.length ? "OK.php":"error.php")   )
    })


вывод

Код:
пришло : <div id="div_value">123</div>
стало : 123
Мы будем загружать : OK.php
если все хорошо то вот твой конечный скрипт

function checkme() {

    $('#div_1').load('ajax.php #div_value', function(a){

        $('#div_1').text( (a=a.replace(/<.+>(.*)<.+>/,"$1")) )
        $("#div_body").load( a.length ? "ok.php":"error.php"  )   

    })

}
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск