中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

深圳網站維護優(yōu)化百度識別圖片找圖

深圳網站維護優(yōu)化,百度識別圖片找圖,域名購買后怎么使用,中國商標網商標查詢網文章目錄 一、axios1、什么是axios2、axios發(fā)起GET請求3、axios發(fā)起POST請求4、直接使用axios發(fā)起請求 二、跨域與JSONP1、了解同源策略和跨域2、JSONP(1)實現(xiàn)一個簡單的JSONP(2)JSONP的缺點(3)jQuery中的J…

文章目錄

  • 一、axios
    • 1、什么是axios
    • 2、axios發(fā)起GET請求
    • 3、axios發(fā)起POST請求
    • 4、直接使用axios發(fā)起請求
  • 二、跨域與JSONP
    • 1、了解同源策略和跨域
    • 2、JSONP
      • (1)實現(xiàn)一個簡單的JSONP
      • (2)JSONP的缺點
      • (3)jQuery中的JSONP
      • (4)自定義參數(shù)及回調函數(shù)名稱
      • (5)jQuery中JSONP的實現(xiàn)過程
  • 三、案例:淘寶搜索
    • 1、UI效果
    • 2、獲取用戶輸入的搜索關鍵詞
    • 3、封裝getSuggestList函數(shù)
    • 4、渲染建議列表的UI結構
    • (1)定義搜索建議列表
    • (2)定義模板結構
    • (3) 定義渲染模板結構的函數(shù)
    • (4)搜索關鍵詞為空時隱藏搜索建議列表
    • 5、輸入框防抖
    • 6、緩存搜索的建議列表
  • 四、防抖和節(jié)流
    • 1、防抖
    • 2、節(jié)流
      • (1)概念
      • (2)**節(jié)流案例 – 鼠標跟隨效果**
    • 3、防抖和節(jié)流的區(qū)別


一、axios

1、什么是axios

  • Axios 是專注于網絡數(shù)據請求的庫。
  • 相比于原生的 XMLHttpRequest 對象,axios 簡單易用。
  • 相比于 jQuery,axios 更加輕量化,只專注于網絡數(shù)據請求。

2、axios發(fā)起GET請求

  • axios.get('url', { params: { /*參數(shù)*/ } }).then(callback)
  • 例如:
var paramsObj = { name: 'zs', age: 20 }
axios.get(url, { params: paramsObj }).then(function (res) {console.log(res.data)
})

3、axios發(fā)起POST請求

  • axios.post('url', { /*參數(shù)*/ }).then(callback)
  • 例如:
var dataObj = { address: '北京', location: '順義區(qū)' }
axios.post(url, dataObj).then(function (res) {console.log(res.data)
})

4、直接使用axios發(fā)起請求

 axios({method: '請求類型',url: '請求的URL地址',data: { /* POST數(shù)據 */ },params: { /* GET參數(shù) */ }}) .then(callback)

例如:

var paramsData = { name: '鋼鐵俠', age: 35 }
axios({method: 'GET',url: url,params: paramsData
}).then(function (res) {console.log(res.data)
})
axios({method: 'POST',url: 'http://www.liulongbin.top:3006/api/post',data: {name: '娃哈哈',age: 18,gender: '女'}
}).then(function (res) {console.log(res.data)})

二、跨域與JSONP

1、了解同源策略和跨域

  • 如果兩個頁面的協(xié)議域名端口都相同,則兩個頁面具有相同的源。
  • 例如,下表給出了相對于 http://www.test.com/index.html 頁面的同源檢測:

學習視頻的圖片

  • 同源策略(英文全稱 Same origin policy)是瀏覽器提供的一個安全功能。
  • MDN 官方給定的概念:同源策略限制了從同一個源加載的文檔或腳本如何與來自另一個源的資源進行交互。這是一個用于隔離潛在惡意文件的重要安全機制。
  • 通俗的理解:瀏覽器規(guī)定,A 網站的 JavaScript,不允許和非同源的網站 C 之間,進行資源的交互,例如:

無法讀取非同源網頁的 Cookie、LocalStorage 和 IndexedDB
無法接觸非同源網頁的 DOM
無法向非同源地址發(fā)送 Ajax 請求

  • 同源指的是兩個 URL 的協(xié)議、域名、端口一致,反之,則是跨域。
  • 出現(xiàn)跨域的根本原因:瀏覽器的同源策略不允許非同源的 URL 之間進行資源的交互。
  • 瀏覽器允許發(fā)起跨域請求,但是,跨域請求回來的數(shù)據,會被瀏覽器攔截,無法被頁面獲取到!
  • 現(xiàn)如今,實現(xiàn)跨域數(shù)據請求,最主要的兩種解決方案,分別是 JSONPCORS。
  • JSONP:出現(xiàn)的早,兼容性好(兼容低版本IE)。是前端程序員為了解決跨域問題,被迫想出來的一種臨時解決方案。缺點是只支持 GET 請求,不支持 POST 請求。
  • CORS:出現(xiàn)的較晚,它是 W3C 標準,屬于跨域 Ajax 請求的根本解決方案。支持 GET 和 POST 請求。缺點是不兼容某些低版本的瀏覽器。

2、JSONP

JSONP (JSON with Padding) 是 JSON 的一種“使用模式”,可用于解決主流瀏覽器的跨域數(shù)據訪問的問題。

由于瀏覽器同源策略的限制,網頁中無法通過 Ajax 請求非同源的接口數(shù)據。但是 <script> 標簽不受瀏覽器同源策略的影響,可以通過 src 屬性,請求非同源的 js 腳本。

因此,JSONP 的實現(xiàn)原理,就是通過 <script> 標簽的 src 屬性,請求跨域的數(shù)據接口,并通過函數(shù)調用的形式,接收跨域接口響應回來的數(shù)據。

(1)實現(xiàn)一個簡單的JSONP

定義一個 success 回調函數(shù):

<script>function success(data) {console.log('獲取到了data數(shù)據:')console.log(data)}</script>

通過 <script> 標簽,請求接口數(shù)據:

<script src="http://ajax.frontend.itheima.net:3006/api/jsonp?callback=success&name=zs&age=20"></script>

(2)JSONP的缺點

由于 JSONP 是通過 <script> 標簽的 src 屬性,來實現(xiàn)跨域數(shù)據獲取的,所以,JSONP 只支持 GET 數(shù)據請求,不支持 POST 請求。

注意:JSONP 和 Ajax 之間沒有任何關系,不能把 JSONP 請求數(shù)據的方式叫做 Ajax,因為 JSONP 沒有用到 XMLHttpRequest 這個對象。

(3)jQuery中的JSONP

jQuery 提供的 $.ajax() 函數(shù),除了可以發(fā)起真正的 Ajax 數(shù)據請求之外,還能夠發(fā)起 JSONP 數(shù)據請求,例如:

 $.ajax({url: 'http://ajax.frontend.itheima.net:3006/api/jsonp?name=zs&age=20',// 如果要使用 $.ajax() 發(fā)起 JSONP 請求,必須指定 datatype 為 jsonpdataType: 'jsonp',success: function(res) {console.log(res)}})

默認情況下,使用 jQuery 發(fā)起 JSONP 請求,會自動攜帶一個 callback=jQueryxxx 的參數(shù),jQueryxxx 是隨機生成的一個回調函數(shù)名稱。

(4)自定義參數(shù)及回調函數(shù)名稱

在使用 jQuery 發(fā)起 JSONP 請求時,如果想要自定義 JSONP 的參數(shù)以及回調函數(shù)名稱,可以通過如下兩個參數(shù)來指定:

 $.ajax({url: 'http://ajax.frontend.itheima.net:3006/api/jsonp?name=zs&age=20',dataType: 'jsonp',// 發(fā)送到服務端的參數(shù)名稱,默認值為 callbackjsonp: 'callback',// 自定義的回調函數(shù)名稱,默認值為 jQueryxxx 格式jsonpCallback: 'abc',success: function(res) {console.log(res)}})

(5)jQuery中JSONP的實現(xiàn)過程

jQuery 中的 JSONP,也是通過 <script> 標簽的 src 屬性實現(xiàn)跨域數(shù)據訪問的,只不過,jQuery 采用的是動態(tài)創(chuàng)建和移除 <script> 標簽的方式,來發(fā)起 JSONP 數(shù)據請求。

在發(fā)起 JSONP 請求的時候動態(tài)向 <header>append 一個 <script> 標簽;

在 JSONP 請求成功以后動態(tài)從 <header>移除剛才 append 進去的 <script> 標簽;

三、案例:淘寶搜索

1、UI效果

在這里插入圖片描述

2、獲取用戶輸入的搜索關鍵詞

// 監(jiān)聽文本框的 keyup 事件$('#ipt').on('keyup', function() {// 獲取用戶輸入的內容var keywords = $(this).val().trim()// 判斷用戶輸入的內容是否為空if (keywords.length <= 0) {return}// TODO:獲取搜索建議列表})

3、封裝getSuggestList函數(shù)

function getSuggestList(kw) {$.ajax({// 指定請求的 URL 地址,其中,q 是用戶輸入的關鍵字url: 'https://suggest.taobao.com/sug?q=' + kw,// 指定要發(fā)起的是 JSONP 請求dataType: 'jsonp',// 成功的回調函數(shù)success: function(res) { console.log(res) }})}

4、渲染建議列表的UI結構

(1)定義搜索建議列表

<div class="box"><!-- tab 欄區(qū)域 --><div class="tabs"></div><!-- 搜索區(qū)域 --><div class="search-box"></div><!-- 搜索建議列表 --><div id="suggest-list"></div></div>

(2)定義模板結構

 <!-- 模板結構 --><script type="text/html" id="tpl-suggestList">{{each result}}<div class="suggest-item">{{$value[0]}}</div>{{/each}}</script>

(3) 定義渲染模板結構的函數(shù)

 // 渲染建議列表function renderSuggestList(res) {// 如果沒有需要渲染的數(shù)據,則直接 returnif (res.result.length <= 0) {return $('#suggest-list').empty().hide()}// 渲染模板結構var htmlStr = template('tpl-suggestList', res)$('#suggest-list').html(htmlStr).show()}

(4)搜索關鍵詞為空時隱藏搜索建議列表

 $('#ipt').on('keyup', function() {// 獲取用戶輸入的內容var keywords = $(this).val().trim()// 判斷用戶輸入的內容是否為空if (keywords.length <= 0) {// 如果關鍵詞為空,則清空后隱藏搜索建議列表return $('#suggest-list').empty().hide()}getSuggestList(keywords)})

5、輸入框防抖

防抖策略(debounce)是當事件被觸發(fā)后,延遲 n 秒后再執(zhí)行回調,如果在這 n 秒內事件又被觸發(fā),則重新計時

  • 防抖動的 timer定義
 var timer = null                    
  • 定義防抖的函數(shù)
 function debounceSearch(keywords) { timer = setTimeout(function() {// 發(fā)起 JSONP 請求getSuggestList(keywords)}, 500)}
  • 在觸發(fā) keyup 事件時,立即清空 timer
 $('#ipt').on('keyup', function() {  clearTimeout(timer)// ...省略其他代碼debounceSearch(keywords)})

6、緩存搜索的建議列表

  • 定義全局緩存對象
var cacheObj = {}
  • 將搜索結果保存到緩存對象中
 // 渲染建議列表function renderSuggestList(res) {// ...省略其他代碼// 將搜索的結果,添加到緩存對象中var k = $('#ipt').val().trim()cacheObj[k] = res}
  • 優(yōu)先從緩存中獲取搜索建議
 // 監(jiān)聽文本框的 keyup 事件$('#ipt').on('keyup', function() {// ...省略其他代碼// 優(yōu)先從緩存中獲取搜索建議if (cacheObj[keywords]) {return renderSuggestList(cacheObj[keywords])}// 獲取搜索建議列表debounceSearch(keywords)})

四、防抖和節(jié)流

1、防抖

見標題三(案例:淘寶搜索)下的輸入框防抖

2、節(jié)流

(1)概念

節(jié)流策略(throttle),顧名思義,可以減少一段時間內事件的觸發(fā)頻率

(2)節(jié)流案例 – 鼠標跟隨效果

  • 1、渲染UI結構并美化樣式
<!-- UI 結構 -->
<img src="./assets/angel.gif" alt="" id="angel" />
/* CSS 樣式 */
html, body {margin: 0;padding: 0;overflow: hidden;
}
#angel {position: absolute;
}
  • 2、不使用節(jié)流時實現(xiàn)鼠標跟隨效果
$(function() {// 獲取圖片元素var angel = $('#angel')// 監(jiān)聽文檔的 mousemove 事件$(document).on('mousemove', function(e) {// 設置圖片的位置$(angel).css('left', e.pageX + 'px').css('top', e.pageY + 'px')})
})
  • 3、節(jié)流閥的概念

節(jié)流閥為空,表示可以執(zhí)行下次操作;不為空,表示不能執(zhí)行下次操作。

當前操作執(zhí)行完,必須將節(jié)流閥重置為空表示可以執(zhí)行下次操作了。

每次執(zhí)行操作前,必須先判斷節(jié)流閥是否為空。

  • 4、使用節(jié)流優(yōu)化鼠標跟隨效果
$(function() {var angel = $('#angel')var timer = null // 1.預定義一個 timer 節(jié)流閥$(document).on('mousemove', function(e) {// 3.判斷節(jié)流閥是否為空,如果不為空,則證明距離上次執(zhí)行間隔不足16毫秒if (timer) { return } timer = setTimeout(function() {$(angel).css('left', e.pageX + 'px').css('top', e.pageY + 'px')// 2.當設置了鼠標跟隨效果后,清空 timer 節(jié)流閥,方便下次開啟延時器timer = null }, 16)})
})

3、防抖和節(jié)流的區(qū)別

  • 防抖:如果事件被頻繁觸發(fā),防抖能保證只有最后一次觸發(fā)生效!前面 N 多次的觸發(fā)都會被忽略!
  • 節(jié)流:如果事件被頻繁觸發(fā),節(jié)流能夠減少事件觸發(fā)的頻率,因此,節(jié)流是有選擇性地執(zhí)行一部分事件!
http://www.risenshineclean.com/news/57243.html

相關文章:

  • 單位加強網站建設網絡推廣自學
  • 徐州做網站需要多少錢seo自媒體培訓
  • 如何寫代碼做網站百度關鍵詞排名軟件
  • 滕州做網站網店代運營騙局流程
  • 做網站的公司都是小公司百度關鍵詞模擬點擊軟件
  • 好的網站具備什么條件找代寫文章寫手
  • 衡陽網站建設制作全媒體運營師報名入口
  • 房產資訊什么網站做的好廈門百度推廣開戶
  • 房產網站開發(fā)文檔合肥seo軟件
  • 網站建設屬于seo數(shù)據
  • java網站開發(fā)實例視頻教程朋友圈廣告代理商官網
  • 網站設置關于我們怎么做推廣策略怎么寫
  • WordPress首頁站內搜索開魯seo網站
  • 常熟網站開發(fā)搜索大全引擎入口
  • 利用淘寶視頻服務做視頻網站百度快照如何優(yōu)化
  • 網站新建設請示cpa游戲推廣聯(lián)盟
  • 新增備案網站常見的網絡推廣方式包括
  • 西山區(qū)城市建設局網站哈市今日頭條最新
  • 建設企業(yè)網站登錄901百度廣告運營
  • 如何建設淘寶客網站專業(yè)網站推廣軟件
  • 免費的erp系統(tǒng)成都網站關鍵詞推廣優(yōu)化
  • 網站開發(fā)編碼選擇一般是網絡營銷大師排行榜
  • 福田時代汽車官方網站品牌傳播方案
  • 58重慶網站建設最新網站查詢
  • 網站建設制作汕頭寧波外貿網站推廣優(yōu)化
  • 建設銀行河南省分行網站愛站網 關鍵詞挖掘工具站長工具
  • 化工產品網站建設百度關鍵詞優(yōu)化公司哪家好
  • 營銷型網站建設百度網站的網址
  • 石家莊網站建設案例網絡推廣員怎么做
  • 姐妹直播河南網站建設優(yōu)化技術