您好,登錄后才能下訂單哦!
這篇文章主要介紹“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 … else if… /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 ——${y}-${m}-$42k72fn ${h}:${mi}:${s}——;
}
</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>
免責(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)容。