我們在實際的開發過程中必定是有前后台數據交互 而現在只有兩種數據傳輸的方法一個是ajax和form表單提交
前后台數據傳輸,是非常重要的,一個頁面沒有前后台數據交互的話那也只是一個靜態頁面而已
在此之前我們打開文件的方式都是雙擊通過file協議,本地打開 一個文件
file:///C:/Users/John/Desktop/ajax1/1.html
像是這樣在本地打開的文件是沒有服務端所以我要使用xammp APP模擬一個服務端
這樣才可以更好的學習前后台的數據傳輸 xammp 集成了apache服務器,mysql數據庫,php服務端語言,集成的軟件
如何使用xammp 軟件
在安裝完成后
xammp服務存放的路徑:xammp安裝目錄中的htdocs文件夾,刪除里面所有的文件,這樣的話可以防止自己的文件被搞混淆。
在將自己想要打開的文件放入htdocs文件夾
然后下一步打開軟件
點擊Config按鈕 在點擊第一個Apache按鈕進入文本設置端口號
紅色的記號設置端口號盡量設置為3000以上的4位數這樣的話成功率高
怕有些端口被其他的軟件占用了導致失敗
都設置成功后點擊Starl按鈕生成環境成功
這里我設置的端口號是8888
接下使用端口號的進入方法來試試把
注意這里進入的網頁鏈接
http://ip地址:端口號/文件的路徑 這里我設置的端口號是8888
在看看我們在htdocs文件夾中放入自己的文件
注意這里瀏覽器只能識別html文件像上面CSS文件和js文件瀏覽器是識別不除來的
在搭建好了服務端環境后就可以學習接下來的前后台數據傳輸了
上面也說了有兩種方法
一種是Ajax Ajax也是現在主流的前后端數據交互的方法 當要局部刷新的時候,我們采用Ajax請求。
ajax的優點在於
1. 通過異步模式,提升了用戶體驗
2. 優化了瀏覽器和服務器之間的傳輸,減少不必要的數據往返,減少了帶寬占用
3. Ajax引擎在客戶端運行,承擔了一部分本來由服務器承擔的工作,從而減少了大用戶量下的服務器負載。
<body> <h1>注冊賬號請輸入中文</h1> 用戶名 <input type="text" name="" id="input1"> <span class="deom"></span> //提示信息 <br> <button>檢查用戶名是否可用</button> <script src="https://cdn.bootcss.com/jquery/1.11.1/jquery.js"></script> //jq CDN <script> $("button").on("click", function() { //通過單擊擊的方式 $.ajax({ //啟動jq 的ajax的方法 type: "GET", //這里是傳輸的方法 url: "02.php", //這里是模仿服務端的后台文件地址 data: { input1: $("#input1").val() // }, success: function(data) { //data封裝的xhr.responseText console.log(data) //服務端返回的數據 if (data == 1) { //通過返回的數據來判斷並且做出相應的行為 $(".deom").html("用戶名已經存在").css({ color: "red" }) } else { $(".deom").html("用戶名可以使用").css({ color: "springgreen" }) } }, error: function(xhr) { console.log(xhr.status) } }) }) </script> </body>
之前說過要模擬一個服務端出來所以這里使用PHP模仿
<?php // 定義一個數組,用來存儲用戶名,實際肯定是存在數據庫,從數據庫中去獲取 $db = ['蔡徐坤','香蕉君','邪劍仙']; // 參數,根據接口文檔來進行定義的 $uname = $_GET['input1']; // 首先假設沒有 $exists = false; // 循環判斷 foreach($db as $n){ if($n === $uname){ $exists = true; break; } } if($exists){ echo "1"; //1代表用戶名已經存在 }else{ echo "0"; //0代表用戶名可以使用 } ?>
現在進入頁面操作一下
以上是AJax的前后端數據代嗎可以綁定失去焦點事件
2.第二種form表單提交
<body> <h1>通過form表單的提交方式完成前后端通信</h1> <form action="02.php" method="GET"> //這里是GET提交方法 <input type="text" name="userName" placeholder="請輸入用戶名">//后台通過name屬性來獲取前台的數據 <br> <input type="text" name="userPwd" placeholder="請輸入密碼"> <br> <input type="submit"> </form> </body>
使用form表單提交提交錯誤的話就整個頁面都會刷新 用戶填寫的信息都會消失所以不建議使用