
14.12.2014, 14:36
|
Интересующийся
|
|
Регистрация: 02.12.2014
Сообщений: 19
|
|
AJAX обновление div в разных частях страницы
Добрый день. Сделал обновление части страницы через ajax. Брал такой вот скрипт:
<div id="content"></div>
<script>
function show()
{
$.ajax({
url: "time.php",
cache: false,
success: function(html){
$("#content").html(html);
}
});
}
$(document).ready(function(){
show();
setInterval('show()',1000);
});
</script>
Но если делать такое с двумя или больше блоками - не работает. Хотя все id меняю. Как решать?..
|
|

14.12.2014, 14:46
|
Интересующийся
|
|
Регистрация: 02.12.2014
Сообщений: 19
|
|
Первый блок вообще не работает. А второй работает.
Подумывал о конфликтах sql запросов в двух подгружаемых файлах. Исправления ни чего не дали...
|
|

15.12.2014, 08:38
|
Профессор
|
|
Регистрация: 21.12.2012
Сообщений: 869
|
|
Что значит твое "не работает"? ЧТо в консоли? НЕт ошибок? Запросы смотрел, идут вообще?
|
|

15.12.2014, 20:38
|
Интересующийся
|
|
Регистрация: 02.12.2014
Сообщений: 19
|
|
Сообщение от krasovsky
|
Что значит твое "не работает"? ЧТо в консоли? НЕт ошибок? Запросы смотрел, идут вообще?
|
Ни каких нет. Работает только последний по стр блок. Остальные тупо не прогружаются.
|
|

16.12.2014, 07:25
|
Профессор
|
|
Регистрация: 21.12.2012
Сообщений: 869
|
|
Что сделать нормальный пример религия не позволяет? Все должны догадываться что там у тебя?
Так вот тебе предположение: если ты тупо копируешь вышепреведенный код и тупо меняешь id, то логично что будет работать только последняя. Потому что функция show каждый раз переопределяется.
|
|

16.12.2014, 22:32
|
Интересующийся
|
|
Регистрация: 02.12.2014
Сообщений: 19
|
|
Сообщение от krasovsky
|
Что сделать нормальный пример религия не позволяет? Все должны догадываться что там у тебя?
Так вот тебе предположение: если ты тупо копируешь вышепреведенный код и тупо меняешь id, то логично что будет работать только последняя. Потому что функция show каждый раз переопределяется.
|
Дико извиняюсь, вот пример одного блока:
<div class="table-responsive" id="history">Загрузка..</div>
<script>
function show()
{
$.ajax({
url: "ajax.mygames.php",
cache: false,
success: function(html){
$("#history").html(html);
}
});
}
$(document).ready(function(){
show();
setInterval('show()',500);
});
</script>
По такой же системе делаю второй после него. Только меняется имя файла и id соответственно. Работает последний. Я сначала подумал, что это из за цикла перезагрузок блоков. Наверное это та функция, о которой Вы говорите. Нельзя ли как нибудь с уникальным параметром ее сделать? Что бы циклы отдельно грузились...
|
|

16.12.2014, 23:24
|
Интересующийся
|
|
Регистрация: 02.12.2014
Сообщений: 19
|
|
Сделал вот так вот:
<script>
function show()
{
$.ajax({
url: "ajax.mygames.php",
cache: false,
success: function(html){
$("#history").html(html);
}
});
$.ajax({
url: "ajax.hgames.php",
cache: false,
success: function(html){
$("#hgames").html(html);
}
});
}
$(document).ready(function(){
show();
setInterval('show()',1000);
});
</script>
Все вроде работает, но можно еще как то время для каждой функции отдельно задавать?
|
|

18.12.2014, 07:45
|
Профессор
|
|
Регистрация: 21.12.2012
Сообщений: 869
|
|
Сообщение от kkolorid
|
Все вроде работает, но можно еще как то время для каждой функции отдельно задавать?
|
Вот так в идеале должна выглядеть твоя функция - не повторять 100500 раз один и тот же код, а передавать параметры.
function show(url,block)
{
$.ajax({
url: url,
cache: false,
success: function(html){
block.html(html);
}
});
}
$(document).ready(function(){
show('/http://myUrl',$('#myBlock'));
});
Теперь можешь ее хоть тыщу раз вызвать для любого блока. Остается только вопрос вызова для всех блоков одновременно - организовать цикл через for или jquery .each() или также нахардкодить тыщу сетинтервалов с разным значением интервала
Все твои вопросы в общем то касались только логики построения кода, а не самого кода.
Последний раз редактировалось krasovsky, 18.12.2014 в 07:48.
|
|

18.12.2014, 20:56
|
Интересующийся
|
|
Регистрация: 02.12.2014
Сообщений: 19
|
|
Сообщение от krasovsky
|
Вот так в идеале должна выглядеть твоя функция - не повторять 100500 раз один и тот же код, а передавать параметры.
function show(url,block)
{
$.ajax({
url: url,
cache: false,
success: function(html){
block.html(html);
}
});
}
$(document).ready(function(){
show('/http://myUrl',$('#myBlock'));
});
Теперь можешь ее хоть тыщу раз вызвать для любого блока. Остается только вопрос вызова для всех блоков одновременно - организовать цикл через for или jquery .each() или также нахардкодить тыщу сетинтервалов с разным значением интервала
Все твои вопросы в общем то касались только логики построения кода, а не самого кода.
|
А как?... Просто если бы я знал js... Как теперь это все дело зациклить? И желательно для каждого блока разное время.
|
|

19.12.2014, 11:58
|
Профессор
|
|
Регистрация: 21.12.2012
Сообщений: 869
|
|
Ну так к примеру
setInterval( show('/http://myUrl',$('#myBlock')),1000);
setInterval( show('/http://myUrl2',$('#myBlock2')),3400);
setInterval( show('/http://myUrl3',$('#myBlock3')),750);
И вообще, я же специфики твоей не знаю. Давай, прояви фантазию, думаю у тебя и у самого получится.
|
|
|
|