5

这听起来可能很奇怪,但我一直在用 PHP 编写游戏。我发现的主要问题是更新 PHP 的唯一方法是加载页面。这使得实时速度变慢。Javascript 可以在不重新加载页面的情况下与页面交互。是否可以使用 Javascript 在页面上加载 PHP 页面?这样它就可以在不重新加载的情况下一遍又一遍地加载 PHP。

我已经看到它在聊天室中完成,但不确定它是如何工作的。

4

3 回答 3

3

我们主要使用 Ajax,它包含在调用服务器端页面的客户端 Javascript 代码中,而无需离开页面。

这是一个使用GET方法 ( JSFiddle )获取页面显示内容的示例:

var xhr = XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHttp');
xhr.onreadystatechange = function(){
    if(xhr.readyState==4 && ((xhr.status>=200 && xhr.status<300) || xhr.status==304)){//Checks if the content was loaded
        console.log(this.responseText);
    }
}
xhr.open('GET','myPHPPage.php?foo=foo&bar=bar',true);
xhr.send();

在这里使用POST方法(JSFiddle):

var xhr = XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHttp');
var data = 'foo=foo&bar=bar';
xhr.onreadystatechange = function(){
    if(xhr.readyState==4 && ((xhr.status>=200 && xhr.status<300) || xhr.status==304)){//Checks if the content was loaded
        console.log(this.responseText);
    }
}
xhr.open('POST','myPHPPage.php',true);
xhr.setRequestHeader('Content-type','application/x-www-form-urlencoded');
xhr.setRequestHeader('Content-length',data.length);
xhr.send(data);

请注意,这里我们使用该setRequestHeader方法来更改此 HTTP 请求的标头,在这种情况下,更改Content-typeContent-length(此标头的默认值为 4096 字节)。此外,setRequestHeader方法必须在方法之后调用open

这些链接应该可以帮助您:

https://developer.mozilla.org/en/Ajax

http://code.google.com/intl/pt-BR/edu/ajax/tutorials/ajax-tutorial.html

于 2012-06-30T05:17:48.073 回答
2

是的,这非常普遍。阅读 Ajax。

于 2012-06-30T05:13:14.660 回答
0

我们称之为 AJAX !!!只需阅读互联网上有关 ajax 的文档

于 2012-06-30T05:14:31.430 回答