Ajax入門筆記

Ajax 幫你實時更新網頁遊戲數據

作者:瓦間草 郵箱:[email protected]
Ajax原理演示動畫

多說無益,快看案例(最重要)

需要創建兩個文檔:一個主文檔,一個對數據庫操作的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

感謝以上組織和工程技術人員的教學分享

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章