За последние 24 часа нас посетили 16522 программиста и 1677 роботов. Сейчас ищут 902 программиста ...

вместо .load() истользовать $.ajax()

Тема в разделе "JavaScript и AJAX", создана пользователем qwert_ukg, 13 май 2011.

  1. qwert_ukg

    qwert_ukg Активный пользователь

    С нами с:
    20 июл 2010
    Сообщения:
    387
    Симпатии:
    0
    Адрес:
    Алмата
    как из:
    [js]$('#price').load('http://.../search.php', {srch:s});[/js]
    сделать
    [js]$.ajax(...)[/js]
     
  2. qwert_ukg

    qwert_ukg Активный пользователь

    С нами с:
    20 июл 2010
    Сообщения:
    387
    Симпатии:
    0
    Адрес:
    Алмата
    [js]var s;
    $(document).ready(function(){
    s=500;
    $("#play").click(function(){

    $.ajax({
    type: "POST",
    url: "http://.../search.php'",
    data: {srch:s},
    success: function(html){
    $("#price").append(html);
    }
    });
    });
    });[/js]
    может кому пригодится
     
  3. qwert_ukg

    qwert_ukg Активный пользователь

    С нами с:
    20 июл 2010
    Сообщения:
    387
    Симпатии:
    0
    Адрес:
    Алмата
    встал вопрос о параметре "cache" он кеширует отправляемый запрос?
    если да то как можно закешировать результат, чтобы при подгрузке повторных данных, они грузились из кеша???
     
  4. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    я бы использовал

    Код (Text):
    1. $("#price").html(html);
    если нужно заменить, а не добавить к тому, что уже есть.

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


    и ещё, в качестве аватарок разрешены только личные фото
     
  5. qwert_ukg

    qwert_ukg Активный пользователь

    С нами с:
    20 июл 2010
    Сообщения:
    387
    Симпатии:
    0
    Адрес:
    Алмата
    ой, правил не читал
     
  6. qwert_ukg

    qwert_ukg Активный пользователь

    С нами с:
    20 июл 2010
    Сообщения:
    387
    Симпатии:
    0
    Адрес:
    Алмата
    может можно и средсвами php с кешем поработать, подскажите с чего начать??
     
  7. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    qwert_ukg
    врядли в браузере получится управлять кешем.

    если загрузка производится с помощью javascript (как сделано сейчас),
    то все результаты можно сохранять в переменную, а при запросе проверять,
    не был ли данный текст уже загружен. что-то вроде этого:

    [js]<script type="text/javascript">
    var cache = [];
    function get_search(query){
    if (typeof(cache[query]) !== 'undefined'){
    $("#price").html(cache[query]);
    } else {
    $.ajax({
    url: "/search.php",
    type: "POST",
    data: {srch:query},
    success: function(html){
    cache[query] = html;
    $("#price").html(cache[query]);
    }
    });
    }
    }
    </script>[/js]
     
  8. qwert_ukg

    qwert_ukg Активный пользователь

    С нами с:
    20 июл 2010
    Сообщения:
    387
    Симпатии:
    0
    Адрес:
    Алмата
    хочу реализовать поиск на аяксе.
    представляю механизм кеширования так:
    значение переменной srch и результат (при этой переменной), сохраняются в кэш, перед отправкой аякс запроса - проверка если новый srch есть в кэше то - результат брать из кэша, иначе - аякс на сервер
     
  9. qwert_ukg

    qwert_ukg Активный пользователь

    С нами с:
    20 июл 2010
    Сообщения:
    387
    Симпатии:
    0
    Адрес:
    Алмата
    Gromo
    немогу разобраться с вашим примером, хотя суть вполне понятна
     
  10. qwert_ukg

    qwert_ukg Активный пользователь

    С нами с:
    20 июл 2010
    Сообщения:
    387
    Симпатии:
    0
    Адрес:
    Алмата
    Gromo
    разобрался с примером, - именно то что мне нужно)
    спасибо!!!
     
  11. qwert_ukg

    qwert_ukg Активный пользователь

    С нами с:
    20 июл 2010
    Сообщения:
    387
    Симпатии:
    0
    Адрес:
    Алмата
    может кто знает как еще можно ускорить вывод результатов аякс
     
  12. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    qwert_ukg
    весь процесс аякс запроса делится на три этапа:
    1. запрос браузера на сервер
    2. обработка запроса сервером и выдача результатов
    3. отображение результатов браузером

    самый медленный момент - обработка запроса сервером и выдача результатов.
    первый и третий этап можно вообще не учитывать, т.к. обычно это происходит
    очень быстро или зависит от вещей, на которые мы повлиять не можем.

    если сервер медленный, то можно посоветовать взять сервер побыстрее :)
    если у пользователя интернет медленный - то тут ничего не поделать.


    ах, да, это и есть ответ на твой другой вопрос "что быстрее - load или ajax"
    и то и другое - это 1 и 3 этапы, которые не сильно влияют на общее время запроса.
    так что можно использовать любой способ - в большинстве случаев быстрее не станет.
     
  13. qwert_ukg

    qwert_ukg Активный пользователь

    С нами с:
    20 июл 2010
    Сообщения:
    387
    Симпатии:
    0
    Адрес:
    Алмата
    Gromo
    сервак мне возвращает готовую таблицу от 0 до 500 строк, может мне получать от него только данные а таблицу стрить у клиента?
     
  14. qwert_ukg

    qwert_ukg Активный пользователь

    С нами с:
    20 июл 2010
    Сообщения:
    387
    Симпатии:
    0
    Адрес:
    Алмата
    вот кстати и она
    PHP:
    1. while($row=mysql_fetch_array($result))
    2.         {
    3.             if (floor($i/2)==ceil($i/2))
    4.             {
    5.                 echo "<tr name='".$row["0"]."' class='nechet'>";
    6.                     echo "<td class='left_pad'>".$i."</td>
    7.                     <td><div class='big'>".$row["1"];
    8.                         if ($row["2"]!='') echo ", ";
    9.                     echo "<span style='font-style:italic;color:#444477;'>".$row["2"]."</span></div><div class='small'>".$row["3"]."</div></td>
    10.  
    11.                     <td>".$row["4"]."</td>
    12.                     <td>".$row["5"]."</td>
    13.                     <td>".$row["6"]."</td>
    14.                     <td>".$row["7"]."</td>
    15.                     <td></td>";
    16.                 echo "</tr>";
    17.             }
    18.             else
    19.             {
    20.                 echo "<tr name='".$row["0"]."' class='chet'>";
    21.                     echo "<td class='left_pad'>".$i."</td>
    22.                     <td><div class='big'>".$row["1"];
    23.                         if ($row["2"]!='') echo ", ";
    24.                     echo "<span style='font-style:italic;color:#444477;'>".$row["2"]."</span></div><div class='small'>".$row["3"]."</div></td>
    25.  
    26.                     <td>".$row["4"]."</td>
    27.                     <td>".$row["5"]."</td>
    28.                     <td>".$row["6"]."</td>
    29.                     <td>".$row["7"]."</td>
    30.                     <td></td>";
    31.                 echo "</tr>";
    32.             }
    33.         $i++;     //<input class='inp' type='text' name='kol_id[".$row[0]."]' size='3' value='".$kol."' />
    34.         //if ($i>50) break;
    35.         }