Помощник
|
"многопоточность" средствами AJAX |
1nSane
|
Сообщение
#1
|
||
|
|
||
|
|||
Letmetouchyou |
10.5.2010, 22:26;
Ответить: Letmetouchyou
Сообщение
#2
|
|
много стращного кода )
разбирать не охота) попробуй используя бибилиотеку jquery :) будет меньше кода на нмогоЮ понятнее, и кросбраузерно) |
|
|
1nSane
|
Сообщение
#3
|
|
А более подробно? Мне как-то не важно что именно || запускать, свой код или jQuery. Главное КАК это сообразить?
Или в jQuery есть готовая спец. функция для многократного запуска без ожидания ответа? |
|
|
Letmetouchyou |
11.5.2010, 1:15;
Ответить: Letmetouchyou
Сообщение
#4
|
|
In$ane, да какие существующие функции..
вот маленький пример. rand.php: [PHP]<?php header('Content-Type: text/javascript; charset=windows-1251'); usleep(1000000); echo "{'number':'".rand(10,1000)."'}"; ?>[/PHP] html & js : <html>
<head> <style> body {font:13px normal 'Tahoma'} div {background:#3399ff; margin:100px auto; width:500px; padding:3px} span {padding:3px; display:block; color:#fff; border-right:5px solid #336699; width:25px; float:left; margin:3px; background:#3b5998} input[type=button] {background:#ffcc33; border:none; color:#c68346} input[type=text] {color:#fff; font-weight:bold; background:none; border:none} </style> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript"> var num=0; function answer(request){ num--; $('input[type=text]').val(num); $('div').append('<span>'+request.number+'</span>'); } function assync(){ num++; $('input[type=text]').val(num); $.getJSON( 'rand.php', answer ); } $(document).ready(function(){ for(var i=1; i<300; i++) assync(); $('input[type=button]').click(assync); }); </script> </head> <body> <div> <input type="button" value="request" /> количество запросов в очереди: <input type="text" value="#####" /> </div> </body> </html> |
|
|
1nSane
|
Сообщение
#5
|
|
Letmetouchyou
НЕ живой пример :( количество запросов по нажатию реквеста растет, а более ничего не меняется... |
|
|
Letmetouchyou |
18.5.2010, 8:49;
Ответить: Letmetouchyou
Сообщение
#6
|
|
In$ane, все работает, подождать нужно просто или
измени пхп файл [PHP]<?php header('Content-Type: text/javascript; charset=windows-1251'); usleep(100000); echo "{'number':'".rand(10,1000)."'}"; ?>[/PHP] |
|
|
1nSane
|
Сообщение
#7
|
|
Да я вообще паузу убрал, а все равно ничего: http://1nsystem.ru/async.php
пробовал под Лисой, Оперой, Хромом... Нашел тут похожий пример с комментариями: http://www.kachayev.ru/2008/10/10/jquery-a...skolko-potokov/ - попробовал приладить, вроде все хорошо, 45 потоков... по идее в каждом должен обращаться к 2-м УРЛ... НО... закомментил я пока эти строки, т.е. там сейчас пустышка, которая должна просто выдавать якобы инфу на экран... и что я заметил. Если на многие сайты у меня проверка шла 0.5-1 сек, и лишь на некоторые 5-10 сек, то в такой реализации у меня все стало МЕДЛЕННЕЕ, причем в разы, просто пустышку в 45 потоков он отображал минуту! ============================= Проверил полноценно, курл в обработчике отрабатывает как и раньше, 0.5-1 сек, и лишь на некоторые 5-10 сек... а вот выдается на экран информация ОЧЕНЬ МЕДЛЕННО, выходит даже медленнее, чем то, как я раньше, по очереди запускал и выдавал... |
|
|
Letmetouchyou |
18.5.2010, 16:25;
Ответить: Letmetouchyou
Сообщение
#8
|
|
In$ane, в приере все рабочее. разве что если ты использовал новую версию jquery то там нужн валидный json. а в примере он не валиден )
исправь : [PHP]echo '{"number":"'.rand(10,1000).'"}';[/PHP] |
|
|
1nSane
|
Сообщение
#9
|
|
Да, я использовал 1.4.2
Пример заработал, подредактировал его, чтобы видно было, что там многопоточность и ассинхрон: [PHP]header('Content-Type: text/javascript; charset=windows-1251'); $date = date('H:i:s'); $time = rand(1,10); sleep($time); echo '{"number":"'.$date.'"}';[/PHP] Попробовал пошаманить со строкой вывода - ничего не вышло, не показывает. Отсюда вопрос, какого формата должен быть вывод? или где он формируется. Для меня в идеале было бы формирование ТАБЛИЦЫ, а скрипт обработки формировал бы 1 законченную строку, и все бы динамически собиралось. В JS я полный нуб и все эти конструкции мне чужды, JSON слышу впервые вообще... А так, прогресс уже есть, конечно :) |
|
|
Letmetouchyou |
18.5.2010, 17:45;
Ответить: Letmetouchyou
Сообщение
#10
|
|
зачем таблицу?
если можешь дивами вставлять ? [PHP]header('Content-Type: text/javascript; charset=windows-1251'); #парси тут нуэный тебе контетн # echo '{"number":"'.$result.'"}'; // и сюда резлуьтат [/PHP] в js принимаешь результаты function(request){ $('куда вставлять').('<span>'+request.number+'</span>'); } можешь с пхп скрипта передавть несколько параметров. Формат должен быть JSON {"result":"ok", "source":"hhttp"} и отправлять данные пхп скрипту: $.getJSON( 'rand.php', answer ); можешь с ГЕТ переменныи var a = 2; $.getJSON( 'rand.php?cnt='+a, // eval('rand.php?cnt='+a), answer ); и по сути ето не многопоточность. просто к серверу к одному обработчику сразу отправляеться очередь запросов) |
|
|
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Требуется помощь по сайту на "ВордПресс" Закрылся доступ в панель администратора |
12 | Tia2 | 1522 | 25.3.2024, 6:54 автор: Skyworker |
|
✅ sms.chekons.com - ⭐ Сервис для получения SMS на реальные номера USA "Non-VoIP, безлим SMS, API" ⭐ Сервис для получения SMS на реальные номера USA |
10 | Chekon | 3578 | 24.3.2024, 14:15 автор: Chekon |
|
⭐⭐⭐ Google Voice | Gmail - OLD аккаунты "SMS и звонки" ⭐⭐⭐ | 12 | Chekon | 3811 | 24.3.2024, 13:56 автор: Chekon |
|
Опрос: Результаты в упражнении "Жим лёжа" у вэбмастеров | 35 | Room | 4464 | 13.3.2024, 13:10 автор: Room |
|
"Лежащий" домен - 10 лет. Продать? | 8 | Wolfhound | 2379 | 5.3.2024, 3:22 автор: Liudmila |
Текстовая версия | Сейчас: 28.3.2024, 20:13 |