Как я могу иметь рамку на веб-странице, постоянно обновляющую контент, без необходимости обновления страницы пользователем? - PullRequest
0 голосов
/ 06 августа 2010

Мне нужен один из моих фреймов, чтобы изменить его содержимое, когда сервер решит, что пора.Это возможно?Можно ли использовать RSS для этого?Это требует слишком много с точки зрения сети и обработки?

Ответы [ 2 ]

0 голосов
/ 06 августа 2010

Вы можете достичь этого, используя Javascript.

Я бы использовал jQuery с серверным скриптом, возвращающим json, а не XML / RSS. Опрос является общей стратегией, наряду с не заканчивающимися ответами.

Не используйте фреймы, пусть ваш jQuery помещает контент в DIV.

0 голосов
/ 06 августа 2010

Вероятно, это не самый ресурсоэффективный способ сделать это, но вы можете использовать функцию setTimeout рекурсивно.Ниже приведен пример.

<html>
  <head>
    <script type="text/javascript">
      var t;
      function setTimeout_recursive(statement,interval){
        t = setTimeout(statement,interval);
      }
    </script>
  </head>
  <body onload="setTimeout_recursive('document.getElementById(\'blah\').src=\'page.php\';',5000);">
    <iframe id="blah"></iframe>
  </body>
</html>

Файл page.php - это мой гипотетический скрипт для загрузки нового контента.Вы можете заменить его любым файлом, который вы используете для этой цели.

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

Опять же, это, вероятно, ОЧЕНЬ ПЛОХОЙ способ сделать это по нескольким причинам, ноэто было первое, что пришло в голову.Гораздо лучше использовать AJAX в большинстве случаев, когда требуется динамическая загрузка контента.(Единственная ситуация, о которой я могу подумать, это то, чего нельзя сказать о загрузке файлов, когда вы хотите, чтобы пользователь оставался на той же странице, а не отправлял форму и не перенаправлялся.)

Приветствия и удачи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...