PHP On-The-Fly!

Введение
PHP может быть использован для много разных вещей, и одна из самых мощных сценариев Языки доступных в Интернете. Не говоря уже о его крайне дешевых и широко используются. Тем не менее, одна вещь, что PHP не хватает, а на самом деле большинство сценариев Языки являются, это способ обновления страниц в режиме реального времени, без перезагрузки страницы и отправить форму.


Интернет не было сделано для этого. Веб-браузер закрывает соединение с веб-сервером, как только он получил все данные. Это означает, что после этого больше не допускается обмен информацией. Что делать, если вы хотите делать обновление то? Если вы собираете PHP-приложения (например, высококачественной системы управления контентом), то это было бы идеальным, если он работал почти как родной Windows / Linux применения.

Но это требует обновления в реальном времени. То, что не представляется возможным, и поэтому вы могли бы подумать. Хорошим примером приложения, которое работает в (почти) реального времени GMail Google. Все JavaScript питания, и это очень мощный и динамичный. В самом деле, это одна из самых больших продаж-точек GMail. Что делать, если вы могли бы это в своих собственных PHP сайты, а? Угадайте, что я собираюсь показать вам, в этой статье.

Как это работает?
Если вы хотите выполнить скрипт, необходимо перезагрузить страницу, отправьте форму, или нечто подобное. В принципе, новое соединение с сервером должна быть открыта, а это означает, что браузер выходит на новую страницу, теряя на предыдущую страницу. Долгое время сейчас, веб-разработчики уже используют приемы, чтобы обойти эту проблему, как использование IFRAME 1x1, где новую страницу PHP-диск, но это далеко от идеала.

Теперь есть новый способ выполнения скрипта без перезагрузки страницы. За основу этого нового способа является одним из компонентов JavaScript называемых XML HTTP запроса объекта. См. дополнительную информацию о компоненте. Она поддерживается всеми основными браузерами (Internet Explorer 5.5 +, Safari, Mozilla / Firefox и Опера 7,6 +).

С этой целью, а некоторые пользовательские функции JavaScript, можно создать довольно впечатляющие PHP приложений. Давайте посмотрим на первый пример, который динамически обновляется дата / время.

Пример 1
Во-первых, скопировать код и сохранить его в файл под названием 'script.js':

VAR XMLHTTP u003d ложь;
/ * @ @ Cc_on * /
/ * @ ", Если (@ _jscript_version> u003d 5)
/ / JScript дает нам условной компиляции, мы сможем справиться со старыми версиями IE.
/ / И безопасности заблокировали создание объектов.
попробуйте (
XMLHTTP u003d новый ActiveXObject ("Msxml2.XMLHTTP");
) Поймать (е) (
попробуйте (
XMLHTTP u003d новый ActiveXObject ("Microsoft.XMLHTTP");
Поймать) (E) (
XMLHTTP u003d ложь;
)
)
@ @ Конец * /
если (! XMLHTTP и ЬуреоЕ и XMLHttpRequest! u003d "неопределенные") (
XMLHTTP u003d новый XMLHttpRequest ();
)

Функция loadFragmentInToElement (fragment_url, element_id) (
VAR элемент u003d document.getElementById (element_id);
element.innerHTML u003d '<em> Загрузка ...</ ет>';
Xmlhttp.open ("GET", fragment_url);
xmlhttp.onreadystatechange u003d функция () (
если (u003du003d xmlhttp.readyState и 4 и xmlhttp.status u003du003d 200) (
element.innerHTML u003d xmlhttp.responseText;
)
)
xmlhttp.send (нуль);
)

Затем скопируйте код ниже, и вставьте его в файл под названием 'server1.php':

<? PHP
эхо дня ("л ДС финансовом ч: я: ы");
?>

И, наконец, скопируйте приведенный ниже код и вставьте его в файл под названием 'client1.php. Пожалуйста, обратите внимание, хотя, что вам нужно изменить строку в которой написано 'на правильное расположение server1.php на вашем сервере.

<! DOCTYPE HTML PUBLIC "- / / W3C / / DTD HTML 4.01 Strict / / EN">
<html>
<head>
<title> Пример 1 </> название
<script srcu003d"script.js" typeu003d"text/javascript"> </> сценарий

<script typeu003d"text/javascript">
updatedate функции () (
loadFragmentInToElement ('' currentdate ');
)

</> Сценарий
</> Голову

<body>
Текущая дата <span idu003d"currentdate"> <? PHP эхо дня ("л ДС финансовом ч: я: ы");?> </ Span>. <br /> <br />

<input typeu003d"button" valueu003d"Update date" OnClicku003d"updatedate();" />
</> Тела

</ HTML>

А теперь идите, и нажмите на кнопку с надписью "Обновление даты. Дата обновления страницы без того, чтобы быть перегружены. Это делается с помощью объекта XML HTTP запроса. Этот пример может быть просмотрен в Интернете по адресу

Пример 2
Давайте попробуем более сложный пример. В следующем примере, посетитель может ввести два номера, и они складываются на PHP (а не JavaScript). Это показывает истинную мощь PHP и XML HTTP запроса объекта.

Этот пример использует ту же script.js, как и в первом примере, так что вам не нужно создавать это снова. Во-первых, скопировать приведенный ниже код и вставьте его в файл под названием 'server2.php':

<? PHP

/ / Получение номера
$ u003d Num1 intval ($ num1 '] _GET [');
$ u003d Пит2 intval ($ пит2 '] _GET [');

/ / Возвратить ответ
эхо ($ + $ num1 пит2);

?>

А потом, скопируйте приведенный ниже код и вставьте его в файл под названием 'client2.php. Пожалуйста, обратите внимание, хотя, что вам нужно изменить строку в которой написано 'на правильное расположение server2.php на вашем сервере.

<! DOCTYPE HTML PUBLIC "- / / W3C / / DTD HTML 4.01 Strict / / EN">
<html>
<head>
<title> Пример 2 </> название
<script srcu003d"script.js" typeu003d"text/javascript"> </> сценарий

<script typeu003d"text/javascript">
Функция Calc () (
num1 u003d document.getElementById ('num1'). ценность;
пит2 u003d document.getElementById ('пит2'). ценность;

VAR элемент u003d document.getElementById ("ответ");
Xmlhttp.open ("GET", '+ num1 +' и пит2 u003d '+ пит2);
xmlhttp.onreadystatechange u003d функция () (
если (u003du003d xmlhttp.readyState и 4 и xmlhttp.status u003du003d 200) (
element.value u003d xmlhttp.responseText;
)
)
xmlhttp.send (нуль);
)
</> Сценарий
</> Голову

<body>
Используйте форму ниже, чтобы сложить два числа. Ответ вычисляется с помощью скрипта PHP и <em> не </ EM> с JavaScript. В чем преимущество на это? Вы можете выполнить скриптами на стороне сервера (PHP) без перезагрузки страницы. <br /> <br />

<input typeu003d"text" idu003d"num1" sizeu003d"3" /> + <input typeu003d"text" idu003d"num2" sizeu003d"3" /> u003d <ввод типа u003d "текст" ID u003d " Ответ "SIZE u003d" 5 "/>

<Ввод типа u003d "Кнопка" значение u003d "Пересчитать"! OnClick u003d "Calc ();" />
</> Тела

</ HTML>

Когда вы запустите этот пример, вы можете сложить два числа, используя PHP и нет перегрузки на всех! Если вы не можете получить этот пример на работу, то обратите внимание, чтобы посмотреть, например в Интернете.

Любые недостатки ...?
Есть только две реальные недостатки этой системы. Во-первых, любой, кто JavaScript выключен или их браузер не поддерживает XML HTTP запроса объекта не сможет его запустить. Это означает, что вы должны убедиться, что есть не-версия JavaScript, или убедиться, что все ваши посетители включен JavaScript (например, применение Интранет, где вы можете требовать от JS).

Еще одним недостатком является то, что она нарушает закладок. Люди не смогут закладки для страниц, если есть динамическое содержимое. Но если вы создаете приложение PHP (а не веб-сайт PHP), то закладки, вероятно, не очень полезно в любом случае.

Заключение
Как я уже показал вам, используя два очень простых примерах, вполне возможно, для выполнения PHP скрипты, без перезагрузки страницы. Я предлагаю вам узнать больше о XML HTTP запроса объекта и его возможностях.

То, что вы можете сделать безграничны. Например, можно создать очень аккуратным пейджинговой системы, которая не требует перезагрузки вообще. Или можно создать GUI для PHP приложение, которое ведет себя в точности как Windows XP. Только подумайте об этом!

Имейте в виду, что, хотя JavaScript должен быть включен для этой работы. Без JavaScript это будет совершенно бесполезно. Поэтому убедитесь, что ваши посетители поддержка JavaScript, или создать без JavaScript версии.


18 Февраля 2010, 12:02
Отзывы
Написать комментарий
capcha
Написать