ajax和bootstrap框架起步

1、ajax

是什么?Asynchronous Javascript And XML
上網(wǎng)怎么上的?
客戶端:瀏覽器,前端(html、css、js、jquery)
服務(wù)端:現(xiàn)成的,比如百度、csdn等,后端(php、java、python)
有網(wǎng)
上網(wǎng)就是客戶端向服務(wù)端發(fā)送請求,然后獲取到服務(wù)端數(shù)據(jù)的過程
你是通過url的切換實(shí)現(xiàn)的,url就是網(wǎng)址,來得到不同的內(nèi)容
ajax:在不刷新整個頁面的前提下,完成了和服務(wù)端的交互,也就更新了網(wǎng)頁里面的內(nèi)容,一般都是局部更新
應(yīng)用:nba直播,文字直播,用戶注冊,不更新頁面加載下一頁數(shù)據(jù)
ajax怎么使用?
(1)原生js實(shí)現(xiàn)
(2)jquery封裝好的函數(shù)的用法
'content-type', 'application/x-www-form-urlencoded' setRequestHeader
onreadystatechange
readyState
status
responseText

原生js實(shí)現(xiàn)
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>ajax實(shí)現(xiàn)</title>
</head>
<body>
    
</body>
</html>
<script>
// 原生的js實(shí)現(xiàn)ajax的技術(shù)
// 創(chuàng)建對象,
// XMLHttpRequest是高級瀏覽器創(chuàng)建ajax對象的方式
// IE8以下的創(chuàng)建方式不一樣,只需了解即可
var xhr = new XMLHttpRequest()
// 和后端進(jìn)行交互,交互的方式有兩種,pc端:get、post  移動端:get、post、put、delete等
// 發(fā)送get請求 
// 參數(shù)1:請求方式
// 參數(shù)2:處理這個請求的文件,或者url
// 這樣就將請求發(fā)送過去了
// xhr.open('get', 'url')
// xhr.send()

// post方式如何發(fā)送
xhr.open('post', 'url')
// 發(fā)送post,必須要添加這個東西
xhr.setRequestHeader('content-type', 'application/x-www-form-urlencoded')
// 在發(fā)送send的時(shí)候,需要將要傳遞的參數(shù)寫進(jìn)來
xhr.send('name=狗蛋&password=123')

// 服務(wù)端返回?cái)?shù)據(jù)給你,要使用下面的代碼
// ajax在發(fā)送請求的時(shí)候,狀態(tài)會改變,會觸發(fā)這個事件
xhr.onreadystatechange = function () {
    // 4是固定的,代表的意思是請求發(fā)送成功
    if (xhr.readyState == 4) {
        // 當(dāng)響應(yīng)也成功的時(shí)候,就可以獲取數(shù)據(jù)了,去判斷響應(yīng)狀態(tài)碼  404
        if (xhr.status == 200) {
            // 獲取響應(yīng)的內(nèi)容
            var content = xhr.responseText
            // 響應(yīng)內(nèi)容一般都是json格式的字符串
            // 你的工作就是解析json字符串,將內(nèi)容填充到html中
            // 首先將json格式字符串轉(zhuǎn)化為js對象
            var obj = JSON.parse(content)
            // var obj = eval('(' + content + ')')
        }
    }
}
</script>
和服務(wù)端交互
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>和服務(wù)端交互</title>
</head>
<body>
    用戶名:<input type="text" name="user" id="user">
    <br>
    會員等級:<input type="text" name="level" id="level">
    <br>
    會員余額:<input type="text" name="money" id="money">
    <br>
    會員年限:<input type="text" name="year" id="year">
    <br>
    <button id="btn">點(diǎn)我獲取內(nèi)容</button>
</body>
</html>
<script>
// 獲取按鈕
var obtn = document.getElementById('btn')
// 找到每一個input
var ouser = document.getElementById('user')
var olevel = document.getElementById('level')
var omoney = document.getElementById('money')
var oyear = document.getElementById('year')
// 添加點(diǎn)擊事件
obtn.onclick = function () {
    // 和服務(wù)端交互, 創(chuàng)建ajax對象來交互
    var xhr = new XMLHttpRequest()
    xhr.open('get', 'ziliao0.php')
    xhr.send()

    xhr.onreadystatechange = function () {
        if (xhr.readyState == 4) {
            if (xhr.status == 200) {
                // console.log(xhr.responseText)
                // 將其轉(zhuǎn)化為js對象
                obj = JSON.parse(xhr.responseText)
                ouser.value = obj.name
                olevel.value = obj.level
                omoney.value = obj.money
                oyear.value = obj.year
            }
        }
    }
}
</script>
用戶注冊
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>用戶注冊</title>
    <script src="https://cdn.bootcss.com/jquery/1.11.3/jquery.min.js"></script>
</head>
<body>
    <h1>你好,世界!</h1>
    <input type="text" name="user" id="user">
    <span id="usertip"></span>
</body>
</html>
<script>
$(function () {
    $('#user').blur(function () {
        // 通過ajax將內(nèi)容傳遞給服務(wù)端,服務(wù)端判斷之后,給你個狀態(tài),你再去對應(yīng)的修改你的內(nèi)容
        $.ajax({
            type: "POST",
            url: "zhuce.php",
            data: "name=" + $(this).val(),
            success: function(msg){
                // msg就是服務(wù)端給你的內(nèi)容
                var obj = JSON.parse(msg)
                if (obj.state == 1) {
                    $('#usertip').html('√').css('backgroundColor', 'green')
                } else {
                    $('#usertip').html('該用戶已經(jīng)注冊').css('backgroundColor', 'red')
                }
            }
        });
    })
})
</script>

2、bootstrap

是什么?Bootstrap 是最受歡迎的 HTML、CSS 和 JS 框架,用于開發(fā)響應(yīng)式布局、移動設(shè)備優(yōu)先的 WEB 項(xiàng)目。
如何實(shí)現(xiàn)pc端和手機(jī)端顯示的都非常漂亮?
(1)布局兩套,樣式,大公司都是這么做的,淘寶、京東
(2)響應(yīng)式布局,根據(jù)設(shè)備的變化,來改變你的尺寸
1、不能使用px布局。rem,相對單位,是用來相對于html字體的
html {font-size: 20px;}
在你的頁面中 1rem = 1*20px; 2rem = 40px; 0.5rem = 10px;
2、使用框架,比如bootstrap
框架中把每一行分為12個等大小部分,每一部分還可以接著分12分,你可以根據(jù)自己的實(shí)際需求來布局你的網(wǎng)頁
其實(shí)在這個框架中,你需要什么,就直接去官網(wǎng)自己拿下來永久好了,哈哈

<!DOCTYPE html>
<html lang="zh-CN">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <!-- 上述3個meta標(biāo)簽*必須*放在最前面,任何其他內(nèi)容都*必須*跟隨其后! -->
    <title>起步</title>

    <!-- Bootstrap -->
    <link href="dist/css/bootstrap.min.css" rel="stylesheet">
  </head>
  <body>
    <div class="container" style="height:100px; background-color:blue"></div>
    <div class="container-fluid" style="height:100px; background-color:red">
        <div class="row">
            <div class="col-md-1">.col-md-1</div>
            <div class="col-md-1">.col-md-1</div>
            <div class="col-md-1">.col-md-1</div>
            <div class="col-md-1">.col-md-1</div>
            <div class="col-md-1">.col-md-1</div>
            <div class="col-md-1">.col-md-1</div>
            <div class="col-md-1">.col-md-1</div>
            <div class="col-md-1">.col-md-1</div>
            <div class="col-md-1">.col-md-1</div>
            <div class="col-md-1">.col-md-1</div>
            <div class="col-md-1">.col-md-1</div>
            <div class="col-md-1">.col-md-1</div>
        </div>
        <div class="row" style="height:50px; background-color:red">
            <div class="col-md-8" style="height:50px; background-color:cyan">.col-md-8</div>
            <div class="col-md-4" style="height:50px; background-color:orange">.col-md-4</div>
        </div>
        <div class="row">
            <div class="col-md-4">.col-md-4</div>
            <div class="col-md-4">.col-md-4</div>
            <div class="col-md-4">.col-md-4</div>
        </div>
        <div class="row" style="height:200px; background-color:orange">
            <div class="col-xs-12 col-md-8" style="height:200px; background-color:green">.col-xs-12 .col-md-8</div>
            <div class="col-xs-6 col-md-4" style="height:200px; background-color:purple">.col-xs-6 .col-md-4</div>
        </div>
    </div>


    <table class="table table-hover">
            <thead>
              <tr>
                <th>#</th>
                <th>First Name</th>
                <th>Last Name</th>
                <th>Username</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <th scope="row">1</th>
                <td>Mark</td>
                <td>Otto</td>
                <td>@mdo</td>
              </tr>
              <tr>
                <th scope="row">2</th>
                <td>Jacob</td>
                <td>Thornton</td>
                <td>@fat</td>
              </tr>
              <tr>
                <th scope="row">3</th>
                <td>Larry</td>
                <td>the Bird</td>
                <td>@twitter</td>
              </tr>
            </tbody>
          </table>
    
          <form>
                <div class="form-group">
                  <label for="exampleInputEmail1">Email address</label>
                  <input type="email" class="form-control" id="exampleInputEmail1" placeholder="Email">
                </div>
                <div class="form-group">
                  <label for="exampleInputPassword1">Password</label>
                  <input type="password" class="form-control" id="exampleInputPassword1" placeholder="Password">
                </div>
                <div class="form-group">
                  <label for="exampleInputFile">File input</label>
                  <input type="file" id="exampleInputFile">
                  <p class="help-block">Example block-level help text here.</p>
                </div>
                <div class="checkbox">
                  <label>
                    <input type="checkbox"> Check me out
                  </label>
                </div>
                <button type="submit" class="btn btn-default">Submit</button>
              </form>
        
    <span class="glyphicon glyphicon-hand-down"></span>

    <!-- jQuery (Bootstrap 的所有 JavaScript 插件都依賴 jQuery,所以必須放在前邊) -->
    <script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
    <!-- 加載 Bootstrap 的所有 JavaScript 插件。你也可以根據(jù)需要只加載單個插件。 -->
    <script src="dist/js/bootstrap.min.js"></script>
  </body>
</html>
image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容