Появилась проблема следующего рода:
Имеется таблица с некой информацией.

При нажатии на кнопку "Удалить" аяксом отправляется запрос на сервер и данные из таблицы удаляются, тут все понятно.
Но, что бы узнать, точнее проверить, удалилась ли строка или нет нужно перезагрузить страницу, тогда все станет ясно.
Вопрос: как сделать так, что бы строка визуально удалилась через некоторое время (таймаут 1-2 секунды) после действий сервера ?
Надеюсь, все понятно изложил. Спасибо за внимание.
Спустя 5 минут, 18 секунд (3.10.2011 - 13:33) Winston написал(а):
После удаления напиши sleep(2)
Спустя 48 минут, 33 секунды (3.10.2011 - 14:22) RCuPeR написал(а):
Не понял ? На сколько я знаю, sleep(), так сказать "замораживает" скрипт на указаное время.
Но у меня беда не в том. Важно в реальном времени произвести визуальное удаление строки.
Но у меня беда не в том. Важно в реальном времени произвести визуальное удаление строки.
Спустя 38 минут, 13 секунд (3.10.2011 - 15:00) Winston написал(а):
Цитата (RCuPeR @ 3.10.2011 - 14:22) |
Важно в реальном времени произвести визуальное удаление строки |
Значит посылаешь асинхронный запрос в файл php там производится удаление, потом пониже делаешь запрос на выборку из базы и ты уже получишь на одну запись меньше (т.к. одна уже удалена), и потом получаешь в JS записи которые остались.
Например
var = xmlHttp.responseText; // Получаем оставшиеся данные
document.getElementById('id_блока_в_котором_выводятся_записи').innerHTML = var; // Выводим то, что осталось
Ну вот по такому принципу...
Спустя 8 минут, 3 секунды (3.10.2011 - 15:08) caballero написал(а):
Цитата |
Но, что бы узнать, точнее проверить, удалилась ли строка или нет нужно перезагрузить страницу |
чтобы это узнать достаточно убедится что код оттестирован а БД не возвратила ошибку.
Иных причин почему бы строке не удалится нет.
Цитата |
Важно в реальном времени произвести визуальное удаление строки |
Термин "реальное время" сюда никаким каком не лепится. Самое простое и разумное - удалять без всякого аякса и не искать проблем на задницу.
Спустя 7 минут, 56 секунд (3.10.2011 - 15:16) RCuPeR написал(а):
Цитата (Winston @ 3.10.2011 - 12:00) | ||
Значит посылаешь асинхронный запрос в файл php там производится удаление, потом пониже делаешь запрос на выборку из базы и ты уже получишь на одну запись меньше (т.к. одна уже удалена), и потом получаешь в JS записи которые остались. Например var = xmlHttp.responseText; // Получаем оставшиеся данные Ну вот по такому принципу... |
Думал можно как-то по проще, что ли...
Спустя 4 минуты, 38 секунд (3.10.2011 - 15:21) RCuPeR написал(а):
Цитата |
Особенно круто отдавать пользователю ошибки из БД если удаление не произошло. Это самый верный способ, точно! |
Цитата |
Термин "реальное время" сюда никаким каком не лепится. Самое простое и разумное - удалять без всякого аякса и не искать проблем на задницу. |
А мне кажется, как термин "реальное время" подходит очень даже хорошо.
Есть чем помочь - помогите, не чем - проходите мимо, не нужно тролить, это не красиво.
Спустя 41 минута, 14 секунд (3.10.2011 - 16:02) caballero написал(а):
Цитата |
Есть чем помочь - помогите, не чем - проходите мимо, не нужно тролить, это не красиво. |
Я тролингом не занимаюсь - уже вышел с этого возраста.
Во первых не надо применять вумные термины где они не лепятся.
Во вторых не надо применять аякс где он тем более не лепится.
Реализовывать бизнес-логику (особенно изменяющую данные) асинхронкой - искать реальные проблеммы себе на задницу.
Это и есть советы основаные на опыте а не на следованиии модным фишкам. Подумайте что будет если юзер пока вы там чтото ворочаете аяксом начнет пинать кнопки ссылки или листать страницы. Стандартная проблемма, для примера, - пользователь листает назад страницу где отработал аякс - браузер с кеша показывает одно а в базе совсем другое
Цитата |
Особенно круто отдавать пользователю ошибки из БД если удаление не произошло. Это самый верный способ, точно! |
Гораздо круче проигнорировать ошибку(например как любят новички сунуть собаку перед функцией) и сделать перед пользователем вид что все хорошо. Ошибку БД надо корректно обрабатывать, тем более что на оттестированом приложении и нормальном хостинге причин для отказа mysql очень мало. А если ошибка возникла и корректно не отработана логикой сайта - она все равно вылезет перед пользователем на следующем операторе или в виде другого сообщения или вс виде некорректных или отсутствующих данных.
Спустя 55 минут, 14 секунд (3.10.2011 - 16:57) moskitos80 написал(а):
Цитата (RCuPeR @ 3.10.2011 - 12:16) | ||||
Думал можно как-то по проще, что ли... |
Посылаешь ajax запрос на сервер, сервер отрабатывает ситуацию и присылает в обратку статус: хорошо/плохо. Если У сервера "все хорошо", тогда методами DOM удаляешь строку из дерева документа. Иначе, если сервер прислал "Всё плохо" - обрабатываешь ошибку - сообщаешь юзеру - мол извиняй неполадочка... попробуй позже.
В обработке ошибки можно послать админу письмо с кодом ошибки.
Спустя 33 минуты, 21 секунда (3.10.2011 - 17:31) RCuPeR написал(а):
caballero, давайте закроем тему, ОК ? Ваше мнение я уже услышал, в решении вопроса мне это, к сожалению, не поможет.
moskitos80, а вот тут мне очень понравилось, наверное так и сделаю. Спасибо
moskitos80, а вот тут мне очень понравилось, наверное так и сделаю. Спасибо

_____________
Гнусный социопат с комплексом Бога.