Ajax 幫你實時更新網頁遊戲數據
作者:瓦間草 郵箱:[email protected]
多說無益,快看案例(最重要)
需要創建兩個文檔:一個主文檔,一個對數據庫操作的php文檔。
新建一個名稱爲index.html的主文檔,把下面代碼粘貼進去。
<html>
<head>
<meta charset="utf-8">
<script type="text/javascript" >
function MyFirstAjax()
{
var ccc;//設個通訊變量
//把送回來的文字更新給bbb, responseText是關鍵字。
document.getElementById("bbb").innerHTML=ccc.responseText;
ccc.open("GET","aaa.php",true);//即將做的事是:打開並運行aaa文件,並要回結果。
ccc.send();//現在開始幹活
}
</script>
</head>
<body>
//bbb在這裏
<h2><div id="bbb">這是一段文字,一會將被改變</div></h2>
//只要點擊按鈕,就會更新
<button type="button" onClick="MyFirstAjax()">點我改變內容</button>
</body>
</html>
然後我們來看一下aaa.php文件是怎麼寫的
新建一個名稱爲aaa.php的文件,雙擊打開後,把下面四行代碼粘貼進去:
<meta charset="utf-8">
<?php
echo "666!我曹,你真帥!";
?>
在點擊按鈕後會更新爲這句話:666!我曹,你真帥!
我怕瀏覽器識別不了漢字所以加了“utf-8”編碼。
現在把兩個文件放在一起,用阿帕奇運行一下,在火狐瀏覽器中輸入IP,
點擊按鈕後,看到發生了變化:
當然,你可能會有亂碼,服務器不通等情況,如果你感興趣
可以繼續往下看,下面的代碼,逐一幫你解決這些問題:
知識點擴展——代碼兼容性補充
新建一個名稱爲index.html的主文檔,把下面代碼粘貼進去。
<html>
<head>
<meta charset="utf-8">
<script type="text/javascript" >
function MyFirstAjax()
{
//----先整一個變量tmd用來接收PHP送來值的。
var ccc;
//==============================================
//----非重點,兼容性設置,固定用法,理解就行,死記硬背,不要修改,習慣性略過即可---------
if (window.XMLHttpRequest)
{// 讓你的代碼支持 IE7+, Firefox, Chrome, Opera, Safari瀏覽器
ccc=new XMLHttpRequest();
}
else
{// 否則,讓你的代碼支持 IE6, IE5瀏覽器
ccc=new ActiveXObject("Microsoft.XMLHTTP");
}
//==============================================
//==============================================
//----如果兼容性通過,則運行下面的function方法。onreadystatechange固定用法
ccc.onreadystatechange=function()
{
//-----------------如果加載完成-----------------
//----4代表交互完成,200代表後臺正常交互完成時返回的一個狀態碼。
//擴展:404表示文件未找到,500是內部服務器出錯。
if (ccc.readyState==4 && ccc.status==200)
{
//-----------------如果加載完成-----------------
//文檔中選擇ID爲“bbb”的元素並寫入文本 = 回傳的字符
//responseText 是關鍵字,固定用法,意思是得到的字符
//innerHTML 是關鍵字,js語言當中往頁面裏寫字。
document.getElementById("bbb").innerHTML=ccc.responseText;
}
}
//ccc即將執行方案如下(使用“GET方式”打開“aaa.php”文件,“允許”異步)
ccc.open("GET","aaa.php",true);
//ccc,開始執行
ccc.send();
}
//GET方式和POST方式兩種。區別如下:
//GET是收音機,用戶單方面被動接受。反應快,特點:易受緩存干擾,無法與非標字碼的火星人溝通。
//POST是對講機,用戶送出去啥,服務器回覆啥,送、回,送、回。特點:反應慢,能克服緩存問題,文字載彈量大,能準確識別用戶的火星文。
</script>
</head>
<body>
//這裏是我們的bbb元素
<h2><div id="bbb">這是一段文字,一會將被改變</div></h2>
//當點擊按鈕,執行一個click事件,運行MyFirstAjax()
<button type="button" onClick="MyFirstAjax()">點我改變內容</button>
</body>
</html>
然後將index.html和aaa.php文件放入服務器運行,登錄IP即可使用多種瀏覽器觀看效果。
實際上你不止可以使用php文件,txt文件以及其他文件也是可以的。
簡單介紹
Ajax實際上是一種語法或者編碼方案,並不是某個插件,也不是某個需要嵌入的腳本文件。它主要是用javascript語言編寫的,你可以理解爲,按照這個思路寫JavaScript腳本,就叫ajax,讀作“阿賈克斯”。
解釋
Javascript語言
能夠實時更新網頁頁面,很方便。
但是JavaScript並不能夠直接訪問mysql數據庫,只能通過“召喚”,調用專門的數據庫腳本,相互間傳值,來間接實現。例如使用PHP或者JAVA來幫忙。
JavaScript是在html網頁裏面,只要用戶開啓火狐瀏覽器,點擊鍵盤的F12鍵,即可看到赤裸裸的JavaScript源代碼。然後用戶只要稍加改動金幣數量,遊戲就被修改了。所以根本就不安全。
php語言
php能夠操作mysql數據庫但是並不能實時更新頁面的某個局部
php是服務器語言,你可以理解爲“菜譜”或者“炒菜方案”。把一段php菜譜給廚師(網站服務軟件Apache),Apache就按照這段方案幹活了。接着Apache做出一道菜(html頁面),然後把菜(html頁面)傳送給用戶看,用戶永遠看不到炒菜的過程,畢竟數據庫賬號密碼等絕技都明碼寫在php文件裏面。另外,菜端出了廚房,廚師就不管了。
所以利用JavaScript的實時更新特點和php訪問數據庫的特點,兩者一結合,被人起了一個名字“ajax”。
參考資料
runoob網站
http://www.runoob.com/ajax/ajax-intro.html
W3School
http://www.w3school.com.cn/ajax/index.asp
感謝以上組織和工程技術人員的教學分享