Ищу чрезвычайно простой AJAX скрипт


Мне нужен очень простой, простой и легкий AJAX-скрипт.

Есть ли у кого-нибудь оболочка такого скрипта, которой они могут поделиться?

Вот что у меня есть:

  • у меня есть PHP-скрипт на сервере, который отображает текущую дату и время на сервере
  • Мне просто нужен javascript, который вызывает PHP-скрипт и загружает Эхо-текстовую строку в js var, чтобы я мог использовать ее в своем приложении

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

Спасибо за помощь.

7   2   2011-05-10 19:16:20

7 ответов:

JQuery, возможно, правильный ответ для AJAX, но вы также можете сделать это в обычном старом Javascript следующим образом:

 <html>
<head>
    <script type="text/javascript">
        function loadXMLDoc(){
            var xmlhttp;
            if (window.XMLHttpRequest)  {
                // code for IE7+, Firefox, Chrome, Opera, Safari
                xmlhttp=new XMLHttpRequest();
            }
            else {// code for IE6, IE5
                xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
            }

            //the callback function to be callled when AJAX request comes back
            xmlhttp.onreadystatechange=function(){
                if (xmlhttp.readyState==4 && xmlhttp.status==200){
                    document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
                }
            }       
            xmlhttp.open("POST","<<url of web address>>",true);
            xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
            xmlhttp.send("fname=Henry&lname=Ford");
    }
    </script>
</head>
<body>

<h2>AJAX</h2>
<button type="button" onclick="loadXMLDoc()">Request data</button>
<div id="myDiv"></div>

</body>
</html>

Вы можете найти простой пример здесь:

AjaxCall = function(Data, WebServiceURL, Callback) {
    var request;
    var url = WebServiceURL;

    if (window.XMLHttpRequest) {
        request = new XMLHttpRequest();
        request.onreadystatechange = function() {
            if (request.readyState === 4) {
                if (request.status === 200) {
                    Callback(request);
                } else {
                    alert("Sorry, an error occurred. " + request.responseText);
                }
            }
        };
        request.open("POST", url, true);
        request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        request.send(Data);
    } else if (window.ActiveXObject) {
        url += "?" + Data;
        request = new ActiveXObject("Microsoft.XMLHTTP");

        if (request) {
            request.onreadystatechange = function() {
                if (request.readyState === 4) {
                    if (request.status === 200) {
                        Callback(request);
                    } else {
                        alert("Sorry, an error occurred. " + request.responseText);
                    }
                }
            };
            request.open("GET", url, true);
            request.send();
        }
    }
};

Функциональность ajax в jQuery велика, но означает большую загрузку страницы для одной простой функции Javascript.

Вы можете найти загружаемый полностью проработанный пример в моем блоге здесь:

Http://www.willporter.co.uk/blog/simple-ajax-script.aspx

Он использует ASP.NET на стороне сервера, но вы должны понять идею.

JQuery сделал для вас очень простые методы ajax. Вы можете найти дополнительную информацию о них здесь.

Пример:

 $.ajax({
     type: 'GET',
     url: '/SomeUrl/On/The/Server',
     data: { SomeValue: 10 },
     success: function(data, status)
     {
         // On Success
     },
     error: function(data, status)
     {
        // On Error
     }
 });

Посмотрите на это возможно : http://www.scriptiny.com/2011/01/simple-ajax-function-example/

JQuery является более надежной библиотекой в целом, но самые легкие методы AJAX, которые я нашел, являются чрезвычайно простыми Feather AJAX, входящими в 1.6 KB (с пространством для сжатия) или однострочным фрагментом, который я не могу гарантировать.

Риск чрезвычайно легких библиотек заключается в том, что если они ломаются, вы полагаетесь на владельца, чтобы исправить это, а не на команду разработчиков.

Альтернативный подход к решению вашей проблемы заключается в том, чтобы основывать свое время на UTC, а не на локальном времени сервера. Вы даже можете показать клиенту местное время, основанное на этом времени utc, с небольшой работой.

Могу ли я предложить генератор AJAX ? Я разработчик,и это коммерческий инструмент, но у него также есть демо.

Что вы можете сделать с этим инструментом:

  • поместите аннотацию на вашу функцию PHP
  • запустить генератор AJAX на исходном файле PHP
  • включите сгенерированный JavaScript-файл в HTML-страницу и используйте PHP-сервис, как если бы вы вызывали функцию

Для большей ясности приведем пример кода:

//example.php
<?php
//@WebService
function getServerDate(){
    return date('m/d/Y h:i:s a', time());
}
?>

Теперь запустите генератор.: пример.php

Выводом будут два файла: example_service.php и example_caller.js

Теперь вам нужно:

  • добавить example_service.php в том же каталоге, где находится пример.php и
  • включить example_caller.js в индексе.html

HTML-код

Извините, что разместил изображение вместо HTML-кода, но оно не показывалось должным образом.