溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

JavaScript怎么實現(xiàn)前后端交互

發(fā)布時間:2022-03-21 15:26:11 來源:億速云 閱讀:1128 作者:iii 欄目:web開發(fā)

這篇文章主要介紹“JavaScript怎么實現(xiàn)前后端交互”,在日常操作中,相信很多人在JavaScript怎么實現(xiàn)前后端交互問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”JavaScript怎么實現(xiàn)前后端交互”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

form表單

基礎(chǔ)知識

概念

       <form> 標(biāo)簽用于為用戶輸入創(chuàng)建 HTML 表單,表單用于向服務(wù)器傳輸數(shù)據(jù)。

組成

表單標(biāo)簽

表單域:文本框、密碼框、多行文本框、復(fù)選框、單選框、下拉選擇框、文件上傳框等

表單按鈕 button

常用屬性

action :提交表單時,向何處發(fā)送表單

默認(rèn)值就是當(dāng)前網(wǎng)頁的URL地址

提交后  表單會跳轉(zhuǎn)到action屬性設(shè)置的URL地址

target:規(guī)定在何處打開action URL

    默認(rèn) _self 在相同和框架中打開action  URL (在當(dāng)前網(wǎng)頁打開)

method:規(guī)定何種方式把表單提交到 action URL

post:提交數(shù)據(jù)更加隱蔽,適合大量、復(fù)雜的或者文件上傳;

get:默認(rèn),可在在網(wǎng)址里面可以看到用戶提交的信息不安全,適合少量的、簡單的數(shù)據(jù);

enctype:規(guī)定發(fā)送表單數(shù)據(jù)之前如何對數(shù)據(jù)進行編碼

表單同步提交

概念

     觸發(fā)提交按鈕 讓頁面發(fā)生跳轉(zhuǎn)到 action URL的行為。表單具有默認(rèn)的提交行為,默認(rèn)是同步的。form標(biāo)簽內(nèi)部的 action 和 method 屬性就是用來編寫同步的提交行為,同步表單提交,瀏覽器會直接將服務(wù)器響應(yīng)的內(nèi)容渲染到頁面上。

缺點

  頁面發(fā)生跳轉(zhuǎn)

  頁面之前的狀態(tài)和數(shù)據(jù)會丟失

推薦:表單只負(fù)責(zé)采集數(shù)據(jù),Ajax負(fù)責(zé)將數(shù)據(jù)提交到服務(wù)器

表單事件監(jiān)聽

submit監(jiān)聽方式

<form action="./index.html" method="post">

    <input type="submit" value="">

</form>

<script>

    $("form")。submit(function (e) {

        console.log('submit監(jiān)聽表單事件');

    })

</script>

on監(jiān)聽方式

<form action="./index.html" method="post">

    <input type="submit" value="">

</form>

<script>

    $("form")。on('submit', function (e) {

        console.log('on 監(jiān)聽表單事件');

    })

</script>

阻止表單默認(rèn)行為

<form action="./index.html" method="post">

    <input type="submit" value="">

</form>

<script>

    $("form")。on('submit', function (e) {

        e.preventDefault();//阻止表單默認(rèn)提交行為

    })

serialize 快速獲取表單提交的數(shù)據(jù)

語法:$ ( selector )。 serialize()

返回值:form表單中所有帶有name屬性的表單元素的值,使用&符號銜接;

   沒有name屬性的表單元素是無法獲取的!

<form id="form1">

        <input type="text" name="username" />

        <input type="password" name="password" />

        <button type="submit"> 提交</button>

    </form>

    <script>

        $('#form1')。serialize();

        //調(diào)用的結(jié)果:

        // username = 用戶名的值 & password = 密碼的值

    </script>

模板引擎

基礎(chǔ)知識

概念

    模板引擎(這里特指用于Web開發(fā)的模板引擎)是為了使用戶界面與業(yè)務(wù)數(shù)據(jù)(內(nèi)容)分離而產(chǎn)生的,它可以生成特定格式的文檔,用于網(wǎng)站的模板引擎就會生成一個標(biāo)準(zhǔn)的HTML文檔。

優(yōu)點

減少字符串的拼接

代碼結(jié)構(gòu)更清晰

易于維護閱讀

art-template模板引擎

使用

導(dǎo)入art-template

定義數(shù)據(jù)

定義模板

調(diào)用template函數(shù)

渲染HTML結(jié)構(gòu)

 代碼結(jié)構(gòu):

<body>

    <!-- 1. 導(dǎo)入art-template -->

    <script src="./template-web.js"></script>

    <script src="./jQuery.min.js"></script>

    <div id="container">我是容器 我用來裝渲染好的結(jié)構(gòu)</div>

    <!-- 3.定義模板 -->

    <script type="text/html" id="tpl">

        <h2>{{name}}----{{age}}</h2>

    </script>

    <script>

        //2.定義數(shù)據(jù)

        var data = { name: 'zs', age: 20 };

        //4.調(diào)用template函數(shù)

        var htmlstr = template('tpl', data);

        //5.渲染HTML結(jié)構(gòu)

        $("#container")。html(htmlstr);

    </script>

</body>

 效果展示:

標(biāo)準(zhǔn)語法

原文輸出:{{@ value}}  :適用于帶標(biāo)簽的內(nèi)容   例如 <span></span>

條件輸出:if &hellip;  else if&hellip;  /if

<script type="text/html">

    {{if value}}輸出內(nèi)容{{/if}}

    {{if value1}}輸出內(nèi)容1

    {{else if value2}}輸出內(nèi)容2

    {{/if}}

</script>

循環(huán)輸出:each遍歷數(shù)組

<script type="text/html">

    {{each arr}}

       {{$index}} {{$value}}

    {{/each}}

</script>

過濾器:本質(zhì)是function函數(shù)

<script type="text/html">

    <div>注冊時間:{{regTime | dataFormat}}</div>

</script>

<script>

    template.defaults.imports.dataFormat = function (dates) {

        var date = new Date(dates);

        var y = date.getFullYear();

        var m = date.getMonth() + 1;

        var d = date.getDate();

        var h = date.getHours();

        var mi = date.getMinutes();

        var s = date.getSeconds();

        m = m > 9 ? m : "0" + m;

        d = d > 9 ? d : "0" + d;

        h = h > 9 ? h : "0" + h;

        mi = mi > 9 ? mi : "0" + mi;

        s = s > 9 ? s : "0" + s;

        return &mdash;&mdash;${y}-${m}-$42k72fn  ${h}:${mi}:${s}&mdash;&mdash;;

    }

</script>

正則表達式 exec函數(shù):檢索字符串中的正則表達式的匹配

到此,關(guān)于“JavaScript怎么實現(xiàn)前后端交互”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI