здравствуйте! есть такой скрипт Код (Javascript): <script type="text/javascript"> // unblock when ajax activity stops $(document).ajaxStop($.unblockUI); function test1() { $.ajax({ url: 'DelClientsAndGroup.php', cache: false }); } function test2() { $.ajax({ url: 'AddClientsAndGroup.php', cache: false }); } $(document).ready(function() { $('#pageDemo1').click(function() { $.blockUI({overlayCSS: { backgroundColor: 'orangered' }}, { message: '<h1><img src="css/busy.gif" /> Ждите, удаляются старые данные...</h1>'}); test1(); }); $('#pageDemo2').click(function() { $.blockUI({overlayCSS: { backgroundColor: 'skyblue' }}, { message: '<h1><img src="css/busy.gif" /> Ждите, обрабатываются данные файла...</h1>'}); test2(); }); }); </script> но не всегда выполняемый php скрипт заканчивается удачей... есть ещё скрипт вот такой Код (Javascript): $(document).ready(function() { $('#demo8').click(function() { $.blockUI(); setTimeout(function() { $.unblockUI({ onUnblock: function(){ alert('onUnblock'); } }); }, 2000); }); }); и вот вопрос - а можно-ли в onUnblock: function(){ alert('onUnblock'); } вывести результат работы скрипта php? заранее спасибо за помощь!
понимаете, бывает select на сервере отрабатывает дольше, чем позволено таймаутом... в результате скрипт выдаёт 404 ошибку... а юзер этого не видит и не понимает отработало или нет... я костылики написал, но не очень комильфо...
404-ая не по таймауту выдаётся, не надо гнать, попробуй EXPLAIN SELECT сделать и, возможно, индексов навесить правильных, особенно если в таблицу редко данные добавляются и часто считываются.
Добрый день! Результат работы PHP скрипта можно вывести в test1 и test2 добавив success в $.ajax М.б. стоит две одинаковые функции test1 и test2 заменить на одну? Удачи!
с мускулем у меня проблем нет, но основная выборка идёт из sybase ase, вот на нём проблемы... --- Добавлено --- так там два разных скрипта... я пробовал объединить, но вызывается только один... я не спец в java script, просто нагуглил первое, что попалось... там от юзеров требовалось, чтобы видеть не "крутилку" в закладке, а чтобы страница блокировалась на время выполнения скрипта! я это сделал, код вверху, но, если ошибка отработки, то юзер этого не видит... вот и задал вопрос... по идее, самое лучшее было бы, отправка данных в скрипт, блокировка страницы, если ОК, то ОК, если не отработал, то вывод ERROR... как-то так...
Главное это выполнение скрипта, а не блокировка страницы. У Вас отправляется пустой AJAX Request на url DelClientsAndGroup.php, а должны отправляться данные, которые на сервере должен обработать это PHP-скрипт и вернуть Response назад в JS. Вы предполагаете, что у Вас "тормозят" MySql запросы. Неудивительно. Поскольку Вы можете только выбирать все данные из одной или нескольких таблиц и отправлять JSON-Response.
я не ожидал, что запрос будет тормозить (хоть и иногда) потому взял простой скрипт блокировки страницы, без каких-то контролей! принцип - работает - блокирует, отработал - разблокировал! но, как оказалось, не всегда отработка успешна... в общем я понял - буду переписывать скрипт... запустил - отрабатывает, отработало - проверяет, если что-то пошло не так - выводит юзеру на экран! всем спасибо! гугл опять рулит!
На прощание хочу Вам посоветовать прогуглить ajax. Обратите внимание на параметры data, type, success и error. Бывает, ждёшь response, а в нём возаращается html-текст с фатальной ошибкой в PHP. Рекомендую Вам вставить в callback-функциях console.log Код (Javascript): $.ajax({ type: ... , url: "DelClientsAndGroup.php", data: ... , success: function(response){ console.log(response); ... }, error: function(request,error) { console.log(request, error); } }); Удачи!
я в начале юзал именно так, но скрипт выполняется в "тишине" и юзеры возжелали, чтобы процесс хотя-бы блокировал страничку и визуально было видно, что там что-то работает вообще... потому и воспользовался blockUI... в общем - попробую склеить ajax и blockUI, жаль знаний маловато... но ничего, попробую! всем большое спасибо за помощь!