Jump to content
  • 0

jquery ajax - оооочень медленно :(


lolka84
 Share

Question

Всем привет.

Подскажите пожалуйста новичку, в чем заключается моя ошибка.

Задача простая: вывод данных из БД на страницу. Как это делаю я:

При загрузке страницы вызываю функцию


$(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 (!!!) сек!

Что не так делаю то :(

Как это вообще ПРАВИЛЬНО делается ?

Заранее благодарю!

Link to comment
Share on other sites

7 answers to this question

Recommended Posts

  • 0

Все это хозяйство работает на денвере.

В остальном согласен: только на 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;

Хоть убейте не понимаю, что не так :(

Link to comment
Share on other sites

  • 0

Смотрите



success: function(res) {//alert(res);
$(outputId).html(res);
return true;
},

alert() срабатывает через полсекунды после входа на страницу. Т.е. это значит, что функция отработала и данные получила, правильно ? После этого страница (не браузер) подвисает секунды на 4 и только после этого загружается контент в див. Как это понимать то ? Компьютер достаточно мощный, браузер хром последней версии.. Нечего не понимаю :(

Link to comment
Share on other sites

  • 0

Операции с DOM довольно затратны, так что, может быть, дело в этом. Попробуйте написать вот такой код и посмотреть через какое время придут данные:


success: function(res) {
console.log(res); // дальше лезем в консоль и смотрим есть чо или нет
return true;
},

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy