Ajax + Jquery + Неведомая Хрень

Тема в разделе "PHP программирование", создана пользователем lazybiz, 25 окт 2011.

  1. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    Здрасте!
    Есть серьезная проблема для незнающего меня. Описываю (код файлов .css и JQuery, версия которого == 1.6.4 я показывать не буду, т.к. не вижу в этом никакого смысла).

    Суть. Есть файл index.php, тут я с помощью Ajax через JQuery осуществляю обновление <div>-а с интервалом в одну секунду содержимым graph.php.
    Содержимое index.php:
    Код (PHP):
    <?php
    echo '<!DOCTYPE html>
    <html>
    <head>
    <meta content="text/html; charset=Windows-1251">
    <title>iPage</title>
    <link rel="stylesheet" type="text/css" href="index.css" />
    <script type="text/javascript" src="jquery.js"></script>
    </head>
    <body>

    <div id="info" class="info"></div>

    <script>
    function show() {
    $.ajax( {
    url: "graph.php",
    cache: false,
    success: function( html ){
    $( "#info" ).html( html );
    }
    });
    }

    $(document).ready( function() {
    show();
    setInterval( "show()", 1000 );
    });
    </script>
    '
    ;

    echo '</body></html>';
    ?>
    Содержимое файла graph.php:
    Код (PHP):
    <?php
    echo date("H:i:s");
    echo '<br>';
    echo '<img src="/graph_1.php">';
    ?>
    Содержимое файла graph_1.php:
    Код (PHP):
    <?php
    ...
    $im = imagecreatetruecolor( $w, $h );
    ...
    ... тра-та-та
    ...

    header( 'Content-type: image/png' );

    //  header( 'Cache-control: no-cache' );
    //  header( 'Cache-Control: no-cache, must-revalidate' );

    imagepng( $im );

    //  imagedestroy( $im );
    ?>
    Проблема в том, что изображение, сгенерированное при помощи GD, не обновляется каждую секунду в отличии от страницы graph.php, в которой всё содержимое включая время обновляется без проблем.
    Вопрос: что делать?
     
  2. tvister

    tvister Гость

    не совсем в тему.
    формирования картинок при помощи GB это весьма затратно c точки зрения системных ресурсов сервера ,
    и формировать их каждую секунду это смело, тем более если у сайта хорошая посещаемость , то возможны тормоза..
     
  3. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    Я это прекрасно понимаю. В дальнейшем я планирую увеличить интервал. Секунду я поставил в целях отладки.
     
  4. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    Проблема решена. Оказывается что изображение кешируется, для обхода этого необходимо применить нечто следующее:
    Код (PHP):
        echo '<img src="/graph_1.php?'.rand().'">';
    Но тут появляется новая проблема, изображение очень непрезентабельно моргает, буду искать пути обхода.
     
  5. @rtem

    @rtem Гость

    так это понятно, нужно сделать два img тэга, одни из них все время скрыт, а в другом загружена картинка, вешаем на скрытый img событие load и как только картинка загрузилась в скрытый img, показываем его, а другой скрываем, и все повторяется, по интервалу. Тэги размещаются одни на одном, делаешь класс, что то типа hide, он и скрывает твой img, переходы между тэгами можно оформить анимировано благо jquery это позволяет, как только ненужный тэг сделался скрытым, ему вешаем класс hide, ц второга тэга его удаляем, вот вроде весь фокус, если будут проблемы пиши.
     
  6. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    Хм.. Ход твоих мыслей мне понятен. Будет время - обязательно попробую.
     
Загрузка...
Похожие Темы - Ajax Jquery Неведомая
  1. NetWood
    Ответов:
    12
    Просмотров:
    5.156
  2. aameno2
    Ответов:
    1
    Просмотров:
    491
  3. solomonec
    Ответов:
    1
    Просмотров:
    1.435
  4. Сергей74
    Ответов:
    1
    Просмотров:
    1.049
  5. АВаТаРчег
    Ответов:
    1
    Просмотров:
    1.050

Поделиться этой страницей