ajax запрос небольшая проблемка
есть index.php
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js"> </script> <form id="form_id1" method="post" action=""> <input type="hidden" name="name" id="ip_tv1" value="vasya"> </form> <script type="text/javascript"> window.setInterval('AjaxFormRequest1(\'ajaxf\', \'form_id1\', \'1.php\');', 2000); function AjaxFormRequest1(result_id,form_id,url) { jQuery.ajax({ url: url, //Адрес подгружаемой страницы type: "POST", //Тип запроса dataType: "html", //Тип данных data: jQuery("#"+form_id).serialize(), success: function(response) { //Если все нормально document.getElementById(result_id).innerHTML = response; }, error: function(response) { //Если ошибка document.getElementById(result_id).innerHTML = "Ошибка при отправке формы"; } }); } </script> <div id="ajaxf"></div> есть 1.php <?php if($_POST['name'] == 'vasya'){echo 'Все работает отлично';} ?> <script> alert("Privet"); </script> Открываю страницу и через 2 секунды получаю надпись: "Все работает отлично" но куда дела ALERT??? Я хочу так же что бы вылетал алерт и писал "Privet" Подскажите в чем проблема и как сделать так что бы работало? |
Все дело в этой строчке:
Цитата:
Почему ты не поместишь свой алерт прямо в index.php? Цитата:
setInterval(function(){ AjaxFormRequest1('ajaxf', 'form_id1', '1.php'); }, 2000); |
Цитата:
Цитата:
вообщем задача вставить в <div id="more">СЮДА</div> все содержимое другой страницы. Это реально? |
не рекомендую использовать setInterval с малым периодом вызова для аякс-запросов.
Может сложиться такая ситуация, когда ответ еще не пришел, а сетИнтервал лупит следующий запрос и получится каша. |
Цитата:
Т.ч. "сетИнтервал" не будет виноват... :D |
Are you sure?..
1. Стартует скрипт, пошел запрос №1 с данными Д1 к внешнепу скрипту. 2. В это время где-то на магистральных роутерах случился негаразд и запрос начал блуждать. 3. Не получив ответа, сет интервал бьет запрос №2 с данными Д2, которые категорично отличаются от Д1 и требуют смены страницы 4. Приходит ответ от запроса №1, но он не знает, что данные Д2 изменили ситуацию в корне, поэтому скрипт выполняет действие, которое выполнять уже не нужно. 5. получаем неверное поведение приложения, и как следствие - коррапт данныз базы, левый редирект и т.д. |
deivan, не нужно придумывать фигню. Она и так получится. Ты придумывай варианты при которых фигня никогда не получится. ;)
И нечего на методы пенять... |
Как бэ, ничего не придумываю. Это суровые реалии асинхронного программирования.
Если передаваемые данные критичны, то необходимо запросы обертывать в сет-таймаут с коллбэком, который в свою очередь по завершении запроса породит следующий тайм-аут.. вот это и есть вариант, когда фигня действительно не получится. Ну, а если скрипт нужен для какой-то информационной требухи типа количества юзеров он-лайн -- то да, и сет-интервал сойдет. |
Цитата:
И при написании фигни бОльшие таймауты в setInterval() тебя не спасут... ;) |
Ребят, не нужно спорить использовать или не использовать метод. Меня интересует как на моей странице 1 вывести страницу 2 каждые несколько секунд. СО ВСЕМИ JS !!!!
Хелп!!! KSA помоги ты же можешь я знаю) |
ninzzo, так тебе же уже написали
Цитата:
http://www.sql.ru/forum/878979/dinam...chenie-skripta |
Часовой пояс GMT +3, время: 02:08. |