|
jquery ajax - оооочень медленно :(
Всем привет.
Подскажите пожалуйста новичку, в чем заключается моя ошибка. Задача простая: вывод данных из БД на страницу. Как это делаю я: При загрузке страницы вызываю функцию $(document).ready(function(e) { ajaxOutput("<?php echo HOST.'/index.php'; ?>","#idOutputTable","<?php echo $smile['ajax_error']; ?>","viewClients"); }); которая имеет вид function ajaxOutput(page,outputId,errorText,ajaxName,str) { s = (str == undefined) ? "ajax=" + ajaxName : "ajax=" + ajaxName + "&findStr=" + str; $.ajax({ type:"POST", url:page, data:s, dataType:"html", success: function(res) {//alert(res); $(outputId).html(res); return true; }, error: function() { msg(errorText,"error",5000); return false; } }); return false; } нечего криминального вроде нет. Далее функция передает данные в php файл, который делает запрос к БД, формирует таблицу с результатами и отдает ее функции. Что имею в итоге: ~250 (!!!) записей в БД и время их вывода на страницу около 5 (!!!) сек! Что не так делаю то :( Как это вообще ПРАВИЛЬНО делается ? Заранее благодарю! |
Непонятно почему таблица по ajax грузится а не вместе со страницей.
Минус в том что эта таблица небудет замечена поисковиками. Плюс в том что страница будет грузится быстрее. к самому js коду претензий вроде нет. сколько времени занимает прямое обращение по url из строки браузера ? |
Цитата:
Цитата:
Вообще, видимо на самом дело в php скрипте, но там тоже особо никакого криминала нет, если кратко: switch($POST['ajax']) { case "var": $query = query("SELECT * FROM `table`"); echo "<table>"; foreach ($query as $key => $val) { echo "<tr>"; echo "<td>".$val['id']."</td>"; echo "<td>".$val['name']."</td>"; echo "<td>".$val['sum']."</td>"; echo "</tr>"; } echo "</table>"; break; Понятно, что есть там кое-какие вычисления простенькие, но что б 5 секунд обрабатывалось ~250 строк... |
Смотрите
success: function(res) {//alert(res); $(outputId).html(res); return true; }, alert() срабатывает через полсекунды после входа на страницу. Т.е. это значит, что функция отработала и данные получила, правильно ? После этого страница (не браузер) подвисает секунды на 4 и только после этого загружается контент в див. Как это понимать то ? Компьютер достаточно мощный, браузер хром последней версии.. Нечего не понимаю :( |
Цитата:
впрочем дело тут не в ajax. ссылку на страницу дайте пожалуйста странно что подвисает, возможно запрос не асинхронный. добавьте async :true, быстрее не станет , но должно решить проблему с подвисанием браузера |
Да полный отказ от ajax не проблема, но просто хочется сделать именно так, хотя бы для саморазвития.
Ссылку сейчас сделаю. |
|
это что такое ?
http://test1.ru/3smile/?page=404 |
Это просто локальный адрес.
з.ы. async :true проблему подвисания не решило :( |
короче насколько я понял всё работает отлично.
просто время отклика сервера около 3х секунд самый разумный способ добится повышения производительности это атказаться от ajax, потому что из ajax 3 секунды ожидания вы невыкинете ни как. всё что можно попробывать сделать для ajax это асинхронная загрузка и смена хостинга/тарифа Это неокончательное утверждение, а поверхностная оценка. Дополнительно можете замерить время генерации таблицы на сервере, но я почти уверен что оно занемает не более пары сотен милисекунд |
Часовой пояс GMT +3, время: 17:05. |
|