AJAX запрос...
Как заставить браузер игнорировать действия пользователя при выполнении ajax?
Синхронные запросы почему-то не блокируют браузер, возможно потому что ajax запрос выполняется долго.. Проблему в том, что пользователь может послать еще один запрос, кликнув на другую ссылку, как это можно запретить? request = new window.XMLHttpRequest(); params = 'name=' + encodeURIComponent(key); request.open('GET', "check.php?" + params, true); request.setRequestHeader("Content-Type", "text/plain;charset=UTF-8"); request.onreadystatechange = function () { if (request.readyState === 4 && request.status === 200) { //// ............. } }; С ajax никогда работать не приходилось до этого((( |
Обычного флага не хватит?
var isRequestProcessed = false; ... if (!isRequestProcessed) { isRequestProcessed = true; request = new window.XMLHttpRequest(); //.. request.onreadystatechange = function () { //.. isRequestProcessed = false; } } |
Sanda,
вот не знаю почему, но не люблю я использовать флаги. Мне кажется это хаком, возможно я не прав)) А разве по другому никак нельзя? (главное чтоб работало в ie8 -9 ниже не надо) |
Цитата:
Если нужен синхронный, надо ставить false. Ещё можно, например, вешать перекрывающий полупрозрачный div с надписью 'Loading...' |
Цитата:
Цитата:
хотя если сделать полностью прозрачным то можно, но это уж на самый крайний случай! Хотелось бы именно средствами js. |
dmitry111,
Цитата:
|
Dim@,
просто я как думаю, что каждая переменная должна иметь значение, которое будет использоваться по назначению в iQuery используются флаги? У Фленагана нет ни строчки про флаги, я не нашел |
dmitry111,
флаг - переменная которая используется по значению Цитата:
|
Dim@,
да? тогда буду решать с помощью флага! |
dmitry111,
Цитата:
|
Часовой пояс GMT +3, время: 04:18. |