網頁前後端互動樣本

來源:互聯網
上載者:User

標籤:執行   驗證   前台   not   blog   url   示範   try   images   

 

對於網頁開發而言,網頁與伺服器之間的資料互動是很頻繁的,至關重要的一件事情。但是對於很多的初學者來說,這就成了一個不可逾越的痛點問題,本篇部落格將從一個初學者的關點講解其中一種互動方式,此方法經過本人驗證有效,並附有代碼。

首先要實現網頁前背景程式的互動需要安裝後台架構,本人安裝的架構為wamp(windows+apache+mysql+php)。安裝程式可以通過我在百度網盤上的分享連結下載http://pan.baidu.com/s/1cIKb8a 提取碼是cnfh。至於安裝過程中的配置可以參考http://wenku.baidu.com/link?url=eB_xVPpECufRgw2rrXptR_H8m8uT_PLa1818sX7oPXmbjDW36W-fYKtTHREv5NcANVjZfbcdtp2NWqqBt4dMVFtgL7sbMJOwoG-UydmT90_這裡 不再綴續。

架構安裝好之後就可以進行簡單的網頁開發了。

首先是一個簡單的用於測試的網頁代碼。

<html>    <head>    <script src="test.js"></script> //使用的test.js與此html代碼位於同一檔案路徑下,如果路徑不同需要使用相對路徑或絕對路徑    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">    </head>    <body>        <div>            <button type="button" id="s" onclick = "test()">test</button>//建立一個按鈕用於向伺服器上傳資料
     </div> <span id="processing"></span>//用於接收伺服器反饋回來的資料 </body></html>

 接下來是text.js檔案

function test()//發送用戶端請求 {    xmlHttp=GetXmlHttpObject();//擷取xmlhttp對象    if (xmlHttp==null)      {          alert ("Browser does not support HTTP Request")          return      }     var url="test.php"//伺服器幕後處理程式,此時需要和test.html檔案放到同一檔案夾下,如果不在同一檔案夾下,需要加相對路徑或者絕對路徑。    url=url+"?q="+1;//網頁發送給背景資料。可以是數字,字串,json格式資料等任意資料結構    url=url+"&sid="+Math.random()//添加一個隨機數作為尾碼,保證每次請求後台均會重新處理並相應。    xmlHttp.onreadystatechange=stateChanged//幕後處理程式回呼函數     xmlHttp.open("GET",url,true)//使用GET方式發送    xmlHttp.send(null)//發送資料 。}function stateChanged()//監測程式回呼函數{     if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")//如果xmlhttp對象成功接收到資料    {        var strJson = xmlHttp.responseText;//獲得資料文本        //var state = new Function("return" + strJson)();//採用json格式解析        var state = eval("("+strJson+")");//和上述注釋函數功能相同,使用一個即可                document.getElementById("processing").innerHTML=state.openState;//顯示內容                } }function GetXmlHttpObject()//擷取xmlhttp對象{    var xmlHttp=null;    try    {        // Firefox, Opera 8.0+, Safari        xmlHttp=new XMLHttpRequest();    }    catch (e)    {        // Internet Explorer        try        {            xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");        }        catch (e)        {        xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");        }    }    return xmlHttp;}

最後是test.php檔案,需要注意的是,test.php檔案必須放到安裝好的wamp架構下才有效,例如我的架構安裝在E盤,則我的test.php檔案需要放到E:\AppServ\www\目錄下或者該目錄的子目錄 下才有效(之前被這個問題卡了好久,php檔案不執行導致 前端一直連不上後端),以下是php檔案代碼

<?php$hint = "";function test()//測試程式{    $json_string = file_get_contents(‘state.json‘);//開啟一個json檔案    $data = json_decode($json_string,true);//解析json檔案字串    if($data["openState"] == ‘close‘)//對json資料進行操作    {        $data1 = array();        $data1[‘openState‘] = ‘open‘;        $json_string1 = json_encode($data1);        file_put_contents(‘state.json‘, $json_string1);    }        if($data["openState"] == ‘open‘)//對json資料進行操作    {        $data1 = array();        $data1[‘openState‘] = ‘close‘;        $json_string1 = json_encode($data1);        file_put_contents(‘state.json‘, $json_string1);    }    return $json_string;//反饋資料}$q=$_GET["q"];//擷取前台傳來的資料本測試程式為1switch($q){case 1:    $hint = test();//執行test函數    break;}$response=$hint;echo $response;//將處理完的資料反饋給前台?>    

另外還需要php檔案中提及的state.json檔案,這個檔案在前後端互動 的時候不是必須的,此處僅僅是為了示範一個完整的json格式檔案讀寫識別操作過程,state.json檔案中只有一句代碼

{"openState":"close"}

 

以上代碼編寫完成後,就可以進行測試了,測試時需要注意的是開啟網頁的時候不能直接將html檔案拖入瀏覽器,而是需要使用localhost或者127.0.0.1來訪問html頁面,這樣才能與php進行互動,例如,我的檔案

檔案位於E:\AppServ\www檔案夾下

則我訪問test.html檔案的方式為在瀏覽器中輸入網址 http://localhost:8080/test.html

其中8080為連接埠號碼,是在安裝wamp架構時設定的,如果你採用的是其他連接埠號碼,請自行修改,另外,如果採用的是預設的連接埠號碼80,則可省略連接埠號碼。

成功運行時顯示的現象是

 (注釋內容可自行刪除)

 點擊test按鈕

顯示如下

可見從伺服器後端php指令碼中成功擷取到了資訊。再次點擊

原來的close變成了open,可見後台指令碼執行正常。

至此,一個簡單的網頁前後端非同步互動樣本介紹完畢。

你,學會了嗎?

網頁前後端互動樣本

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.