setTimeout("addItemsFromCookie(this_carusel)", 1000);
После него идет дургой код. Нужно что бы он выполнился, после выполнения этой строки.
Возможно такое. Что то типа ассинхроннго выполнения. У setTimeout вроде нет других параметров. Весь код в него бросать что ли?
Спустя 37 минут, 38 секунд (19.02.2012 - 21:40) nugle написал(а):
SoMeOnE
аналог sleep() php на Js
аналог sleep() php на Js
<script>
function sahiIsIE(){
var browser = navigator.appName;
return browser == "Microsoft Internet Explorer";
}
function sahiCreateRequestObject(){
var obj;
if(sahiIsIE()){
obj = new ActiveXObject("Microsoft.XMLHTTP");
}else{
obj = new XMLHttpRequest();
}
return obj;
}
function sahiSendToServer(url){
try{
var http = sahiCreateRequestObject();
var url = url;
http.open("GET", url, false);
http.send(null);
return http.responseText;
}catch(ex){throw ex;}
}
function sleep(ms){
sahiSendToServer("http://localhost:9999/dyn/sleep?ms="+ms);
}
var start = new Date();
sleep(1000);
alert((new Date()) - start);
</script>
Спустя 10 минут, 52 секунды (19.02.2012 - 21:51) sergeiss написал(а):
Если честно, то я так и не понял, чем не подходит простой sleep() из JS?
Спустя 3 минуты, 22 секунды (19.02.2012 - 21:55) nugle написал(а):
sergeiss
я таковым никогда не пользовался, в гугл просто вбил "аналог sleep на js"
я таковым никогда не пользовался, в гугл просто вбил "аналог sleep на js"
Спустя 8 минут, 25 секунд (19.02.2012 - 22:03) SoMeOnE написал(а):
nugle
Что то у меня не верно работает. На что нужно заменить
Я заменяю на http://localhost/site/dyn/sleep?ms="+ms);
Что то у меня не верно работает. На что нужно заменить
sahiSendToServer("http://localhost:9999/dyn/sleep?ms="+ms);
Я заменяю на http://localhost/site/dyn/sleep?ms="+ms);
Спустя 8 минут, 30 секунд (19.02.2012 - 22:11) SoMeOnE написал(а):
sergeiss
У меня не срабатывает. Где можно почитать об эт ой ф-ии. В гугле только ссылки на php аналоги дает.
У меня не срабатывает. Где можно почитать об эт ой ф-ии. В гугле только ссылки на php аналоги дает.
Спустя 41 секунда (19.02.2012 - 22:12) bodja написал(а):
setTimeout вызывает функцию,вот и делайте в ней ,что хотите.
Спустя 6 минут, 32 секунды (19.02.2012 - 22:19) SoMeOnE написал(а):
bodja
У меня setTimeout нах-ся внутри цикла. И пока один раз вызывается ф-ия setTimeout весь цикл успевает обработаться. А внутрь ф-ии передается инкремент. Короче там запутаться можно. Желательно усыплять скрипт.
Хотя и этот setTimeout мне нужен только из за хрома. Так как он очень рано считывает соурс код, jquery плагин не успевает добавить классы, с помощью которых нужно добавить новые элементы внутрь тега.
Я запутался что делать вообще.
У меня setTimeout нах-ся внутри цикла. И пока один раз вызывается ф-ия setTimeout весь цикл успевает обработаться. А внутрь ф-ии передается инкремент. Короче там запутаться можно. Желательно усыплять скрипт.
Хотя и этот setTimeout мне нужен только из за хрома. Так как он очень рано считывает соурс код, jquery плагин не успевает добавить классы, с помощью которых нужно добавить новые элементы внутрь тега.
Я запутался что делать вообще.
Спустя 4 минуты, 10 секунд (19.02.2012 - 22:23) nugle написал(а):
SoMeOnE
а ты пробовал вообще не менять?
а ты пробовал вообще не менять?
Спустя 3 минуты, 2 секунды (19.02.2012 - 22:26) SoMeOnE написал(а):
nugle
да, тогда ошибку выдает.
Component returned failure code: 0x80004005 (NS_ERROR_FAILURE)
хотя и срабатывает алерт, только как то странно.
да, тогда ошибку выдает.
Component returned failure code: 0x80004005 (NS_ERROR_FAILURE)
хотя и срабатывает алерт, только как то странно.
Спустя 10 минут, 37 секунд (19.02.2012 - 22:36) SoMeOnE написал(а):
sergeiss
На простой sleep function undefined пишет.
На простой sleep function undefined пишет.
Спустя 3 минуты, 32 секунды (19.02.2012 - 22:40) nugle написал(а):
попробуй так еще
function delay(mSec)
{
var
start=new Date(),
stop,
between;
start=start.getTime();
while(1)
{
stop=new Date();
between=stop.getTime()-start;
if(between>mSec)
break;
}
}
alert('1');
delay(2500);
alert('2');
alert('3');
Спустя 10 минут, 22 секунды (19.02.2012 - 22:50) SoMeOnE написал(а):
nugle
Работает, но браузер сильно виснит(((
Работает, но браузер сильно виснит(((
Спустя 1 минута, 26 секунд (19.02.2012 - 22:52) nugle написал(а):
SoMeOnE
а он и должен виснуть, ты же все останавливаешь
а он и должен виснуть, ты же все останавливаешь
Спустя 15 минут, 55 секунд (19.02.2012 - 23:08) SoMeOnE написал(а):
nugle
Ну это нежелательный выход.
А можно как то по другому решить проблему в хроме. Дело в том, что хром не успевает увидеть класс, по которому я добавляю элемент у <li>. Еслит ставлю setTimeout 1000, это помогает. Но в этом случае как я вижу я столкнусь с множеством проблем(((
Ну это нежелательный выход.
А можно как то по другому решить проблему в хроме. Дело в том, что хром не успевает увидеть класс, по которому я добавляю элемент у <li>. Еслит ставлю setTimeout 1000, это помогает. Но в этом случае как я вижу я столкнусь с множеством проблем(((
Спустя 6 минут, 54 секунды (19.02.2012 - 23:15) nugle написал(а):
SoMeOnE
а как ты добавляешь, напиши
а как ты добавляешь, напиши
Спустя 43 минуты, 1 секунда (19.02.2012 - 23:58) bodja написал(а):
Что то вы перемутили наверное с кодом действительно.
В яваскрипте дожидается конца загрузки и инциализации элементов в DOM
document.onload=function() {здесь код}
в квери аналог ready
можно еще запустить яваскрипт через <body onLoad="start()">
делать такое через таймер - это сами знаете что ,и будет зависеть от скорости инета и загрузки страцицы,тоесть спокойно скрипт может уйти в ступор.
В яваскрипте дожидается конца загрузки и инциализации элементов в DOM
document.onload=function() {здесь код}
в квери аналог ready
можно еще запустить яваскрипт через <body onLoad="start()">
делать такое через таймер - это сами знаете что ,и будет зависеть от скорости инета и загрузки страцицы,тоесть спокойно скрипт может уйти в ступор.
Спустя 1 час, 33 минуты, 30 секунд (20.02.2012 - 01:31) SoMeOnE написал(а):
bodja
Не очень понелл, что Вы имели ввиду. Но все таки от безвыходности воспользовался Вашим советом. и весь код кроме инициализации перевел в ф-ию которую вызываю с секундной задержкой. И цикл туда же.
Думаю это дико неправильно))) Но не знаю что другого делать.
В этот раз код не очень большой. А если был бы громадный.
На Ваш взгляд правильно оставить так, или же нужно искать другие выходы.
Типа, чтоб в дальнейшем не пожалеть, что хак поставил какой то?
Не очень понелл, что Вы имели ввиду. Но все таки от безвыходности воспользовался Вашим советом. и весь код кроме инициализации перевел в ф-ию которую вызываю с секундной задержкой. И цикл туда же.
Думаю это дико неправильно))) Но не знаю что другого делать.
В этот раз код не очень большой. А если был бы громадный.
На Ваш взгляд правильно оставить так, или же нужно искать другие выходы.
Типа, чтоб в дальнейшем не пожалеть, что хак поставил какой то?
Спустя 15 минут, 59 секунд (20.02.2012 - 01:47) SoMeOnE написал(а):
nugle
Что то типа такого
Сейчас я кроме
все другое перевел в другую ф-ию через setTimeout. Ну и еще другие моменты там тоже есть ниже в коде...
Что то типа такого
Свернутый текст
jQuery('#mycarousel2').jcarousel({
scroll:2,
itemLoadCallback: itemLoadCallbackFunction
});
var old_add_item = JSON.parse(cookie.get('cookie_item'));
for (var key in old_add_item) {
i++;
var item = old_add_item[key];
if (i % 6 == 1) {
max_slide = item['max_slide'];
jQuery('#mycarousel2').jcarousel({
scroll:2,
itemLoadCallback: itemLoadCallbackFunction
});
}
cur_old_item = '<section class="order-item clearfix"><div class="product-name">'+item['title']+'</div><div class="product-portion"><input onkeyup="countPrice(this, '+item['current_count_prod']+');" value="1" type="text" class="r" /> порции</div><div class="product-price place_price_'+item['count_product']+'"> <span>'+item['price_cur']+'</span> AZN</div><figure class="remove"><a href="#" title="remove"></a></figure></section>';
all_item_cur[i] = item;
$('#mycarousel2 li.jcarousel-item-'+this_carusel).append(cur_old_item)
if (i % 3 == 0) {this_carusel = this_carusel + 1}
}
Сейчас я кроме
jQuery('#mycarousel2').jcarousel({
scroll:2,
itemLoadCallback: itemLoadCallbackFunction
});
все другое перевел в другую ф-ию через setTimeout. Ну и еще другие моменты там тоже есть ниже в коде...
Спустя 8 часов, 1 минута, 59 секунд (20.02.2012 - 09:49) sergeiss написал(а):
В итоге я так и не понял твоих "изысков".
Твоя задача, как я понял, сначала выполнить что-то до конца, а потом продолжить выполнение. И вместо простого вызова подряд нужных функций, ты используешь функцию setTimeout(), которая как раз НЕ останавливает работу скрипта в целом.
Такое ощущение, что ты "сам себя перехитрил".
Твоя задача, как я понял, сначала выполнить что-то до конца, а потом продолжить выполнение. И вместо простого вызова подряд нужных функций, ты используешь функцию setTimeout(), которая как раз НЕ останавливает работу скрипта в целом.
Такое ощущение, что ты "сам себя перехитрил".
Спустя 1 час, 48 минут, 4 секунды (20.02.2012 - 11:37) SoMeOnE написал(а):
sergeiss
А что нужно было сделать.
А что нужно было сделать.
Спустя 2 часа, 52 секунды (20.02.2012 - 13:38) sergeiss написал(а):
Цитата (SoMeOnE @ 20.02.2012 - 12:37) |
sergeiss А что нужно было сделать. |
"Что сделать" - это то, что тебе надо получить, ты это сам должен знать А вот "как сделать" - это другой вопрос, вот с ним и давай разбираться.
Насколько я понял, тебе надо просто последовательно вызвать несколько функций. Отработала одна, сделала что-то с данными - начинается другая. Это нормальный алгоритм работы и в JS, и в ПХП. Ты же зачем-то вызываешь setTimeout(). Вот я и не понял - зачем ты это делаешь? Может быть, я просто не понял, что надо сделать. Так что еще раз сформулируй, что же ты хочешь получить (а в процессе формулирования, глядишь, и сам поймешь , что хотел получить).
Спустя 20 минут, 41 секунда (20.02.2012 - 13:59) bodja написал(а):
Цитата |
На Ваш взгляд правильно оставить так, или же нужно искать другие выходы. Типа, чтоб в дальнейшем не пожалеть, что хак поставил какой то? |
Я не имею привычки ,разгребать квери ,тем более когда его суют в раздел яваскрипта,хотя для этого есть отдельный раздел.
Будут вопросы по яваскрипту ,без фреймворков-обращайтесь.
Спустя 16 минут, 58 секунд (20.02.2012 - 14:16) SoMeOnE написал(а):
sergeiss
Потараюсь изложить подробно. У меня всегда с этим проблемы)
Есть jquery плагин. Прокрутки. Работает как слайдер.
Он берет добавочны теги <li> которые я динамически подружаю и иницализирую. В момент инициализации он соответсвенно добавлят очень много своих тегов. Обрамляющие дивы с классами и к <li> тоже добавляет классы. Как впринципе делают все плагины. Вот когда я нахожусь на данной странице, как юзер и начинаю добавлять в этот слайдер элементы при клике на добавить, хром видит в какой <li> добавляется элемент. Так как jquery уже сработал и успед задать всем свои классы типа (jcarousel-item jcarousel-item-horizontal jcarousel-item-1 jcarousel-item-1-horizontal). И я по номеру добавляю их.
Теперь когда юзер уходит на другую страницу эти данные, которые он уже добавил записываются в куки, и перед загрузкой страницы js проверяет есть ли нужная мне кука на данный момент. Если есть, он инициализирует плагин и начинает добавлять старые добавленные элемента обратно туда в слайдер. А юзер затем может с другой страницы опять добавлять добавочные элементы.
И вот так в этот момент при добавлении старых элементов из куки лис рабоатет правильно. А хром нет. Методом научного тыка удалось выяснить, что хром просто напросто не видит тег <li> с классоом jcarousel-item-1.
Т.е я начал вызывать append(элемент) в нужный мне <li> с секундной задержкой . Из за этого пришлось создать фи-ю с секундной задержкой перед началом ее выполнения. Впринципе все теперь рабоатет нормально, но кажется, что метод неверен.
С вызывами инициализации плагина извращался как мог. Т.е старался вызвать его даже в отдельном js файле, который подгружал раньше, чем основной, где происходит добавление. Ничего не помагает.
Хром доходит до этого места кода
раньше, чем плагин успевает добавить этот
Надеюсь мне удалось нормально изложить ситуацию...)
Потараюсь изложить подробно. У меня всегда с этим проблемы)
Есть jquery плагин. Прокрутки. Работает как слайдер.
Он берет добавочны теги <li> которые я динамически подружаю и иницализирую. В момент инициализации он соответсвенно добавлят очень много своих тегов. Обрамляющие дивы с классами и к <li> тоже добавляет классы. Как впринципе делают все плагины. Вот когда я нахожусь на данной странице, как юзер и начинаю добавлять в этот слайдер элементы при клике на добавить, хром видит в какой <li> добавляется элемент. Так как jquery уже сработал и успед задать всем свои классы типа (jcarousel-item jcarousel-item-horizontal jcarousel-item-1 jcarousel-item-1-horizontal). И я по номеру добавляю их.
Теперь когда юзер уходит на другую страницу эти данные, которые он уже добавил записываются в куки, и перед загрузкой страницы js проверяет есть ли нужная мне кука на данный момент. Если есть, он инициализирует плагин и начинает добавлять старые добавленные элемента обратно туда в слайдер. А юзер затем может с другой страницы опять добавлять добавочные элементы.
И вот так в этот момент при добавлении старых элементов из куки лис рабоатет правильно. А хром нет. Методом научного тыка удалось выяснить, что хром просто напросто не видит тег <li> с классоом jcarousel-item-1.
Т.е я начал вызывать append(элемент) в нужный мне <li> с секундной задержкой . Из за этого пришлось создать фи-ю с секундной задержкой перед началом ее выполнения. Впринципе все теперь рабоатет нормально, но кажется, что метод неверен.
С вызывами инициализации плагина извращался как мог. Т.е старался вызвать его даже в отдельном js файле, который подгружал раньше, чем основной, где происходит добавление. Ничего не помагает.
Хром доходит до этого места кода
$('#mycarousel2 li.jcarousel-item-'+this_carusel).append(cur_old_item)
раньше, чем плагин успевает добавить этот
li.jcarousel-item-'+this_caruselкласс.
Надеюсь мне удалось нормально изложить ситуацию...)
Спустя 7 минут, 42 секунды (20.02.2012 - 14:23) SoMeOnE написал(а):
Цитата (bodja @ 20.02.2012 - 10:59) | ||
Я не имею привычки ,разгребать квери ,тем более когда его суют в раздел яваскрипта, |
К слову, я сюда постил вопрос про чистый javascript. В процесе затронули моменты jquery. Так что свой вопрос я в правильную тему запостил)
Спустя 5 минут, 54 секунды (20.02.2012 - 14:29) bodja написал(а):
1 Вы можете не писать куки а передавать данные между страницами с помощью window.name
2 Возможно проще обойтись аяксом ,и неперезагружать страницу вообще.
3 Я так понял, делаем слайдер,здесь мои работы по анимации http://mcsoft.org.ua/primer/ ,если что понравилось ,тычете пальцем ,я вам код предоставлю.
2 Возможно проще обойтись аяксом ,и неперезагружать страницу вообще.
3 Я так понял, делаем слайдер,здесь мои работы по анимации http://mcsoft.org.ua/primer/ ,если что понравилось ,тычете пальцем ,я вам код предоставлю.
Спустя 21 минута, 23 секунды (20.02.2012 - 14:51) SoMeOnE написал(а):
bodja
1) Попозже я наверное переделаю и буду пересылать на сервер ajax-ом и записывать в сессию. Сейчс просто это не самое главное.
2)Юзер гуляет по категориям товаров и добавляет различные товары с различных страниц. Структура не ajax - ая.
3)Насчет слайдера. Слайдера делать времени не было. Соответственно был выбран в сети близкий к дизайну плагин. Хотя конечно, возможно самая главная проблема в самом слайдере. Слишком громоздкий наверное. Но менять уже поздно. Тем более, что вроде бы рабоатет)
1) Попозже я наверное переделаю и буду пересылать на сервер ajax-ом и записывать в сессию. Сейчс просто это не самое главное.
2)Юзер гуляет по категориям товаров и добавляет различные товары с различных страниц. Структура не ajax - ая.
3)Насчет слайдера. Слайдера делать времени не было. Соответственно был выбран в сети близкий к дизайну плагин. Хотя конечно, возможно самая главная проблема в самом слайдере. Слишком громоздкий наверное. Но менять уже поздно. Тем более, что вроде бы рабоатет)
Спустя 6 часов, 54 минуты, 59 секунд (20.02.2012 - 21:46) bodja написал(а):
SoMeOnE
Это мне знакомо,я свой маг уже третий раз переделываю,хотя уже все работало на аяксе и DOM.
Себастьян мой диз раскритиковал,анимацию переношу на флеш,на этот раз будет бомба...
я так думаю.
Это мне знакомо,я свой маг уже третий раз переделываю,хотя уже все работало на аяксе и DOM.
Себастьян мой диз раскритиковал,анимацию переношу на флеш,на этот раз будет бомба...
я так думаю.
Спустя 57 минут, 23 секунды (20.02.2012 - 22:43) sergeiss написал(а):
Цитата (SoMeOnE @ 20.02.2012 - 15:16) |
Т.е я начал вызывать append(элемент) в нужный мне <li> с секундной задержкой . Из за этого пришлось создать фи-ю с секундной задержкой перед началом ее выполнения. Впринципе все теперь рабоатет нормально, но кажется, что метод неверен. |
Вот в таком описании понятнее Я не буду обсуждать оптимальность данного подхода, честно говоря не знаю, может так и нормально.
Но давай вот что посмотрим. Ты хочешь что-то сделать, но не знаешь, готов ли к данному моменту определенный элемент. ОК. Кто тебе мешает проверить существование этого элемента, в случае его отсутствия взять еще задержку на какое-то время? И так до тех пор, пока либо не истечет некоторое пороговое время, либо пока не появится элемент, с которым ты уже можешь работать. Это будет более универсально, для любой ситуации, для любой (разумной) тормознутости браузера.
Спустя 1 час, 5 минут, 37 секунд (20.02.2012 - 23:49) SoMeOnE написал(а):
sergeiss
Ну а вот как делать задержку, я так и не разобрался. Тот метод, про который ты говорил просто (sleep) не работает. Пишет нет такой ф-ии. Те методы, которые предлогали, очень тормазнуто себя ведут, и не совсем корректно срабатывают.
Ну а вот как делать задержку, я так и не разобрался. Тот метод, про который ты говорил просто (sleep) не работает. Пишет нет такой ф-ии. Те методы, которые предлогали, очень тормазнуто себя ведут, и не совсем корректно срабатывают.