vue - Vue中的ajax

来源:https://www.cnblogs.com/heymar/archive/2022/05/09/16251560.html
-Advertisement-
Play Games

只有在ajax才能找回一點點主場了,vue中的ajax一天整完,內容還行,主要是對axios的運用。 明天按理說要開始vuex了,這個從來都是只耳聞沒有眼見過,明天來看看看看是個什麼神奇的東西。 一. 解決開發環境ajax跨域問題 1.配置代理(方法一) 首先我們能發起ajax請求的,xhr原生不推 ...


只有在ajax才能找回一點點主場了,vue中的ajax一天整完,內容還行,主要是對axios的運用。
明天按理說要開始vuex了,這個從來都是只耳聞沒有眼見過,明天來看看看看是個什麼神奇的東西。

一. 解決開發環境ajax跨域問題

1.配置代理(方法一)

首先我們能發起ajax請求的,xhr原生不推薦、jQuery也不封裝得有但是也不推薦,因為要操作DOM,然後就是axios,它的體積比jQuery而且他是專門處理數據請求的,他還是promise風格的,jq和axios都是基於xhr來封裝的,如果沒有了xhr他們就沒有了,但是這個fetch是跟xhr同級的也是原生的,不基於xhr,而且也是promise風格的,他的問題是相容性差

image-20220509121202018

開啟兩個本地的node伺服器,通過axios來獲取數據,先下載axios並導入,註意一下,axios的使用,調用get、post以及ajax綜合請求等,還有後面then回調會有返回成功或者失敗的函數

image-20220509121911720

image-20220509121939489

果不其然,當我們點擊直接就跨域了,我們解決跨域一般三種方法,

cors是配置在後端node裡面的,但是它的缺點就是,不能隨便使用響應頭,要配置本公司內容能請求的響應頭,不然用它預設的是個人都可以請求我們伺服器的數據了

然後jsonp就不用說了,雖然可以配置在前端,但是只限於get,局限性太大了

最後還剩下一種,以前沒有學過的-代理,它的原理是這樣的,在前端和伺服器之間來一個中間代理伺服器,保持跟前端一樣的協議埠號等,這樣一來前端從代理伺服器請求發起資源都沒問題了,為什麼代理伺服器和伺服器不一樣卻可以互相拿資源?因為同源策略使我們瀏覽器的策略,伺服器之間沒得這種協議,隨便訪問

image-20220509141743702

我們這裡通過vue-cli來開啟代理伺服器,通過配置vue.config.js也就是前面說過的,vue-cli的配置文件,所以需要在vue-cli官網的配置參考找到 devServer.proxy,直接拿過來配置即可,這裡要註意,這個地址是寫的你要請求的api伺服器地址,而且不用寫具體下麵哪個路徑,寫到埠號就夠了,因為它是自動代理伺服器的埠號為我們vue-cli伺服器的埠號

image-20220509142441273

還有最後一步別忘記改了,在我們axios請求那裡將請求的伺服器改為代理伺服器其實也相當於就是自己的vue-cli這個伺服器,以為他們兩個是一樣的,同時你可以理解為代理伺服器現在有了api伺服器的資源,所以真正要請求的路徑在這裡填寫

image-20220509143917223

但是這個方法有兩個問題

  • 一個是我們轉發的伺服器只能設置一個,多個不行

    image-20220509145423034

  • 一個這個代理伺服器,如果本身伺服器身上有會預設去拿自身伺服器上的,什麼叫做自身伺服器上的,在我們public文件夾下麵的都是8080伺服器埠上掛載的文件

    image-20220509145619782

    那麼問題來了,我如果自己也有個student的文件

    image-20220509145659961

    這個時候再去拿就是我們自己伺服器上的這個students的資源了

    image-20220509145747017

2.配置代理(方法二)

同樣是參照官網cli的devServer.proxy第二段代碼,他那裡複製過來是這樣的,後面會增刪一些內容

image-20220509151032134

首先/api相當於給你掛首碼了,但是只是拿來繞開vue-cli的本地伺服器的查找機制,我有首碼就不是找你public下麵的東西了,就算你也有students,也不關我的事,然後target就為我們的伺服器地址,下麵ws表示支持websocket,changeOrigin表示控制請求頭中的host值(其實就是要不要撒謊的意思,為fasle,當我們代理伺服器訪問api伺服器,代理伺服器的埠號就為8080,如果為true,那麼他就會跟著api伺服器的埠號走,假裝告訴你我也是5000,以防有些api伺服器開啟限制,必須同埠號的伺服器才能訪問),後面這兩個配置不寫也預設為true,當然這樣還沒完,還有一個關鍵配置,cli官網沒給我們寫出來,要配置一個pathRewrite的屬性,值為一個對象,裡面內容表示把以什麼首碼開頭的這個欄位轉換為空字元串,為什麼要這麼做,因為我剛纔說的,我們添加這個首碼只是為了繞過前端這一塊,解決那個本地伺服器和api伺服器都有相同的資源,會先去找本地伺服器的情況,如果進入api伺服器還去找這麼一個地址,那他下麵根本沒得我們的heymar首碼,所以就會報錯,需要註意的是這裡的正則並不需要字面量來包裹,直接引號包起就可以了

image-20220509152353067

然後記得將我們的axios的請求添加首碼

image-20220509152419562

這個時候就算我們public下麵有同名的文件,也不會訪問到他了

如果我們有多個伺服器,直接接著配置在下麵即可

image-20220509152812529

二.github用戶搜索案例

搜索關鍵字可以把github的用戶名字及頭像顯示出來

image-20220509153830053

組件化編程先拆組件,搜索為一個組件search,下麵列表展示為一個組價list,我們這裡引入了bootstrap.css,引入這些外部的文件有兩種方式,一種是在我們src下麵創建一個文件夾,assets專門來放這些,通過import引入

image-20220509155159635

可以看到用這種方式引入,頁面編譯報錯了,找不到這些字體文件,因為我就單純引入了一個bootstrap.css也用不到這些字體文件,這裡就要說到import的規則了,import導入是嚴格導入,他會去找你這個文件所有的依賴都要準備完畢才會給你編譯成功,所以這裡我們還有第二個方法,在public下麵創建一個css文件夾,然後通過index.html我們link方式來導入,link就不會給你檢查這麼多了,這裡也要尊重他的一個語法規則,前面要添加上一些參數

image-20220509155535339

依照前面的思想,靜態頁面創建完畢,組件劃分好後,第二步應該開始創建動態數據了,在這個案例,input輸入的值是我們的數據,list每一個展示出來的用戶信息是我們的數據,先把input的值搞好,用v-model綁定數據

image-20220509162007491

當我們點擊就去發送請求,通過關鍵字回來的參數再通過全局事件匯流排將數據發給我們的list

image-20220509174944151

我們只要這三個數據,頭像地址,用戶github網址,用戶名字

image-20220509162751903

收到數據通過v-for渲染到頁面

image-20220509164007036

1.完善案例

我們整個案例list界面其實要分為四個界面才完善,搜索出來的用戶列表只是其中一個,還有剛開始進來的歡迎界面,點擊搜索的loading界面,以及失敗後的錯誤界面,很明顯這裡要用條件渲染,寫上四個界面

image-20220509170203316

主要是他們的條件是什麼?結合前面的案例,一般條件渲染要控制幾個頁面的顯示隱藏,至少都得有一個開關也就是變數,來判斷他該顯示還是隱藏,那麼這裡應該有四個開關,來表示四種不同的界面,首先welcome這個界面簡單,一上來就為true,當我們點擊搜索就將loading改為true,直到獲取到請求,將它改為false,將用戶列表的頁面改為true也可以,但為了保險起見最好改為userInfo的長度,要有長度才是真正的得到數據了,錯誤信息這裡一直都是false,知道進入錯誤的回調才為true

image-20220509171115352

由於我們要一點擊就將wel改為false,將loading改為true,所以需要將數據傳到search這個界面,一旦點擊就會觸發這個自定義時間,會發送過來一個對象數據

image-20220509175245075

list接受這邊,為了能夠直接賦值最好也將剛纔定義的數據都裝到一個對象裡面去,接收到search傳過來的對象就可以直接賦值,這樣的好處不僅是方便,而且傳過來的數據也語義化一點,不然就只能是傳過來true,false等,我這邊讓每一個值等於這些值

image-20220509175435934

一直到我們獲取到數據,又傳過來一個新的對象,重新賦值新的對象

image-20220509175510681

image-20220509175523364

這裡有一個小註意點:因為我們的wel界面是一刷新就有,後面不可能再出現了,所以後面傳過來的數據都不帶wel這個參數的,你又以對象賦的值,所以只會導致一種情況

image-20220509175802082

image-20220509175818321

結構被改了,這裡可以用到,es6的擴展運算符,主要是把這個要用起來,用處還是蠻多的

image-20220509180055603

三.vue 項目中常用的 2 個 Ajax 庫

1.axios

2.vue-resource(瞭解)

是比較老的一個ajax請求庫,除了xhr、jq、axios、fetch後有多出了一個,它是vue的一個 插件庫,所以說要在入口文件導入並註冊

image-20220509180932294

前面也說過,只要插件一註冊,那麼下麵的vm、vc都可以使用了,使用$http即可,使用方法跟axios一模一樣,就連返回值都一樣,也是promise風格

image-20220509181243711

四.slot插槽

可以讓父組件向子組件指定位置插入html結構

1.無插槽

image-20220509182216442

要完成這樣一個界面,是不是得把其中一個拿來作為組件後面的直接復用即可

這裡傳值有一個註意點,因為我們每個組件標簽都是一個組件收到的數據也是不一樣的,所以可以取一樣的名字,到時候遍歷出來各是各的

image-20220509183509574

props接收數據,渲染即可

image-20220509183906863

2.預設插槽

現在更新需求,我們有兩個廣告商美食這邊只放他的圖片,電影這邊只放他的電影

image-20220509184713940

這個時候就要用到插槽了,以前從沒有在組件標簽裡面寫過標簽體吧,插槽就是要在這裡面寫

image-20220509184932068

先不要管其他的,如果在組建標簽裡面寫了標簽體,還需要一個關鍵步驟,因為vue能夠解析你的標簽,但是他不知道放在哪裡,也就是放在list這個組件的哪裡,所以需要我們在組件模板裡面用一個標簽 slot來占位

image-20220509185128476

這就是我們的slot插槽,但是由於組件裡面的內容改動,後面也不能直接傳數據進去了,也要把對應的位置內容提到組件標簽這裡來寫

image-20220509185806192

註意當我們slot部分沒有內容傳進來的時候,slot標簽裡面的內容就是預設值

image-20220509190009540

3.具名插槽

就是具有名字的插槽,我們上面是一個插槽,可能不需要名字,但是如果有多個插槽,要插往不同的地方呢

首先給slot添加name屬性

image-20220509190648475

然後在我們標簽體這邊,誰要往哪個插槽添加信息,就把他的 slot屬性寫為誰

image-20220509190748381

註意

當我想把一大段代碼加入到一個slot插槽,但是我又不能一個一個去寫,就有點耗時間了,可以將他們都包在一個div裡面然後給div洗衣歌slot,但是這樣就影響頁面佈局了,我們也可以寫一個template標簽包在這裡面就不會影響佈局了

image-20220509191914243

如果用到了template,那麼vue2.6很新的的一個更新,template可以這樣來寫slot名字,鍵值對,而且沒有引號

image-20220509191852149

這個寫法只能應用於template標簽

4.作用域插槽

什麼時候要用到這個作用域插槽

數據在組件的自身,但根據數據生成的數據結構需要組建的使用者來決定

就是數據沒有在我們的插槽的使用者這裡,什麼叫做插槽的使用者,就是我們slot不是等著標簽來填充嗎,誰來填充這個插槽誰就是使用者,就比如說上面這個案例,這個template就是插槽的使用者

我把數據轉移到list裡面去,那麼app裡面定義的這些games,這些list標簽也就是插槽的使用者都用不到數據了,數據轉移到list裡面去了,現在的情況就很像作用域發生了變化,list這個作用域裡面可以使用games,但是插槽使用者在app裡面就用不到,這個時候就要用到作用域插槽了

image-20220509194439682

怎麼來用,首先要知道一句話,插槽的動態綁定,是把這個數據送到他的使用者,註意是使用者,並不是平時這樣是送到下級

image-20220509194752571

我們使用者這邊怎麼來接受這個參數呢?必須使用template標簽,並且裡面寫一個屬性scope沒有d,他的值隨便取,就是一個對象,這裡麵包含了slot傳過來的所有數據,如果就傳過來了一個data那就是值.data就可以取到

image-20220509195043429
------------恢復內容開始------------
只有在ajax才能找回一點點主場了,vue中的ajax一天整完,內容還行,主要是對axios的運用。
明天按理說要開始vuex了,這個從來都是只耳聞沒有眼見過,明天來看看看看是個什麼神奇的東西。

一. 解決開發環境ajax跨域問題

1.配置代理(方法一)

首先我們能發起ajax請求的,xhr原生不推薦、jQuery也不封裝得有但是也不推薦,因為要操作DOM,然後就是axios,它的體積比jQuery而且他是專門處理數據請求的,他還是promise風格的,jq和axios都是基於xhr來封裝的,如果沒有了xhr他們就沒有了,但是這個fetch是跟xhr同級的也是原生的,不基於xhr,而且也是promise風格的,他的問題是相容性差

image-20220509121202018

開啟兩個本地的node伺服器,通過axios來獲取數據,先下載axios並導入,註意一下,axios的使用,調用get、post以及ajax綜合請求等,還有後面then回調會有返回成功或者失敗的函數

image-20220509121911720

image-20220509121939489

果不其然,當我們點擊直接就跨域了,我們解決跨域一般三種方法,

cors是配置在後端node裡面的,但是它的缺點就是,不能隨便使用響應頭,要配置本公司內容能請求的響應頭,不然用它預設的是個人都可以請求我們伺服器的數據了

然後jsonp就不用說了,雖然可以配置在前端,但是只限於get,局限性太大了

最後還剩下一種,以前沒有學過的-代理,它的原理是這樣的,在前端和伺服器之間來一個中間代理伺服器,保持跟前端一樣的協議埠號等,這樣一來前端從代理伺服器請求發起資源都沒問題了,為什麼代理伺服器和伺服器不一樣卻可以互相拿資源?因為同源策略使我們瀏覽器的策略,伺服器之間沒得這種協議,隨便訪問

image-20220509141743702

我們這裡通過vue-cli來開啟代理伺服器,通過配置vue.config.js也就是前面說過的,vue-cli的配置文件,所以需要在vue-cli官網的配置參考找到 devServer.proxy,直接拿過來配置即可,這裡要註意,這個地址是寫的你要請求的api伺服器地址,而且不用寫具體下麵哪個路徑,寫到埠號就夠了,因為它是自動代理伺服器的埠號為我們vue-cli伺服器的埠號

image-20220509142441273

還有最後一步別忘記改了,在我們axios請求那裡將請求的伺服器改為代理伺服器其實也相當於就是自己的vue-cli這個伺服器,以為他們兩個是一樣的,同時你可以理解為代理伺服器現在有了api伺服器的資源,所以真正要請求的路徑在這裡填寫

image-20220509143917223

但是這個方法有兩個問題

  • 一個是我們轉發的伺服器只能設置一個,多個不行

    image-20220509145423034

  • 一個這個代理伺服器,如果本身伺服器身上有會預設去拿自身伺服器上的,什麼叫做自身伺服器上的,在我們public文件夾下麵的都是8080伺服器埠上掛載的文件

    image-20220509145619782

    那麼問題來了,我如果自己也有個student的文件

    image-20220509145659961

    這個時候再去拿就是我們自己伺服器上的這個students的資源了

    image-20220509145747017

2.配置代理(方法二)

同樣是參照官網cli的devServer.proxy第二段代碼,他那裡複製過來是這樣的,後面會增刪一些內容

image-20220509151032134

首先/api相當於給你掛首碼了,但是只是拿來繞開vue-cli的本地伺服器的查找機制,我有首碼就不是找你public下麵的東西了,就算你也有students,也不關我的事,然後target就為我們的伺服器地址,下麵ws表示支持websocket,changeOrigin表示控制請求頭中的host值(其實就是要不要撒謊的意思,為fasle,當我們代理伺服器訪問api伺服器,代理伺服器的埠號就為8080,如果為true,那麼他就會跟著api伺服器的埠號走,假裝告訴你我也是5000,以防有些api伺服器開啟限制,必須同埠號的伺服器才能訪問),後面這兩個配置不寫也預設為true,當然這樣還沒完,還有一個關鍵配置,cli官網沒給我們寫出來,要配置一個pathRewrite的屬性,值為一個對象,裡面內容表示把以什麼首碼開頭的這個欄位轉換為空字元串,為什麼要這麼做,因為我剛纔說的,我們添加這個首碼只是為了繞過前端這一塊,解決那個本地伺服器和api伺服器都有相同的資源,會先去找本地伺服器的情況,如果進入api伺服器還去找這麼一個地址,那他下麵根本沒得我們的heymar首碼,所以就會報錯,需要註意的是這裡的正則並不需要字面量來包裹,直接引號包起就可以了

image-20220509152353067

然後記得將我們的axios的請求添加首碼

image-20220509152419562

這個時候就算我們public下麵有同名的文件,也不會訪問到他了

如果我們有多個伺服器,直接接著配置在下麵即可

image-20220509152812529

二.github用戶搜索案例

搜索關鍵字可以把github的用戶名字及頭像顯示出來

image-20220509153830053

組件化編程先拆組件,搜索為一個組件search,下麵列表展示為一個組價list,我們這裡引入了bootstrap.css,引入這些外部的文件有兩種方式,一種是在我們src下麵創建一個文件夾,assets專門來放這些,通過import引入

image-20220509155159635

可以看到用這種方式引入,頁面編譯報錯了,找不到這些字體文件,因為我就單純引入了一個bootstrap.css也用不到這些字體文件,這裡就要說到import的規則了,import導入是嚴格導入,他會去找你這個文件所有的依賴都要準備完畢才會給你編譯成功,所以這裡我們還有第二個方法,在public下麵創建一個css文件夾,然後通過index.html我們link方式來導入,link就不會給你檢查這麼多了,這裡也要尊重他的一個語法規則,前面要添加上一些參數

image-20220509155535339

依照前面的思想,靜態頁面創建完畢,組件劃分好後,第二步應該開始創建動態數據了,在這個案例,input輸入的值是我們的數據,list每一個展示出來的用戶信息是我們的數據,先把input的值搞好,用v-model綁定數據

image-20220509162007491

當我們點擊就去發送請求,通過關鍵字回來的參數再通過全局事件匯流排將數據發給我們的list

image-20220509174944151

我們只要這三個數據,頭像地址,用戶github網址,用戶名字

image-20220509162751903

收到數據通過v-for渲染到頁面

image-20220509164007036

1.完善案例

我們整個案例list界面其實要分為四個界面才完善,搜索出來的用戶列表只是其中一個,還有剛開始進來的歡迎界面,點擊搜索的loading界面,以及失敗後的錯誤界面,很明顯這裡要用條件渲染,寫上四個界面

image-20220509170203316

主要是他們的條件是什麼?結合前面的案例,一般條件渲染要控制幾個頁面的顯示隱藏,至少都得有一個開關也就是變數,來判斷他該顯示還是隱藏,那麼這裡應該有四個開關,來表示四種不同的界面,首先welcome這個界面簡單,一上來就為true,當我們點擊搜索就將loading改為true,直到獲取到請求,將它改為false,將用戶列表的頁面改為true也可以,但為了保險起見最好改為userInfo的長度,要有長度才是真正的得到數據了,錯誤信息這裡一直都是false,知道進入錯誤的回調才為true

image-20220509171115352

由於我們要一點擊就將wel改為false,將loading改為true,所以需要將數據傳到search這個界面,一旦點擊就會觸發這個自定義時間,會發送過來一個對象數據

image-20220509175245075

list接受這邊,為了能夠直接賦值最好也將剛纔定義的數據都裝到一個對象裡面去,接收到search傳過來的對象就可以直接賦值,這樣的好處不僅是方便,而且傳過來的數據也語義化一點,不然就只能是傳過來true,false等,我這邊讓每一個值等於這些值

image-20220509175435934

一直到我們獲取到數據,又傳過來一個新的對象,重新賦值新的對象

image-20220509175510681

image-20220509175523364

這裡有一個小註意點:因為我們的wel界面是一刷新就有,後面不可能再出現了,所以後面傳過來的數據都不帶wel這個參數的,你又以對象賦的值,所以只會導致一種情況

image-20220509175802082

image-20220509175818321

結構被改了,這裡可以用到,es6的擴展運算符,主要是把這個要用起來,用處還是蠻多的

image-20220509180055603

三.vue 項目中常用的 2 個 Ajax 庫

1.axios

2.vue-resource(瞭解)

是比較老的一個ajax請求庫,除了xhr、jq、axios、fetch後有多出了一個,它是vue的一個 插件庫,所以說要在入口文件導入並註冊

image-20220509180932294

前面也說過,只要插件一註冊,那麼下麵的vm、vc都可以使用了,使用$http即可,使用方法跟axios一模一樣,就連返回值都一樣,也是promise風格

image-20220509181243711

四.slot插槽

可以讓父組件向子組件指定位置插入html結構

1.無插槽

image-20220509182216442

要完成這樣一個界面,是不是得把其中一個拿來作為組件後面的直接復用即可

這裡傳值有一個註意點,因為我們每個組件標簽都是一個組件收到的數據也是不一樣的,所以可以取一樣的名字,到時候遍歷出來各是各的

image-20220509183509574

props接收數據,渲染即可

image-20220509183906863

2.預設插槽

現在更新需求,我們有兩個廣告商美食這邊只放他的圖片,電影這邊只放他的電影

image-20220509184713940

這個時候就要用到插槽了,以前從沒有在組件標簽裡面寫過標簽體吧,插槽就是要在這裡面寫

image-20220509184932068

先不要管其他的,如果在組建標簽裡面寫了標簽體,還需要一個關鍵步驟,因為vue能夠解析你的標簽,但是他不知道放在哪裡,也就是放在list這個組件的哪裡,所以需要我們在組件模板裡面用一個標簽 slot來占位

image-20220509185128476

這就是我們的slot插槽,但是由於組件裡面的內容改動,後面也不能直接傳數據進去了,也要把對應的位置內容提到組件標簽這裡來寫

image-20220509185806192

註意當我們slot部分沒有內容傳進來的時候,slot標簽裡面的內容就是預設值

image-20220509190009540

3.具名插槽

就是具有名字的插槽,我們上面是一個插槽,可能不需要名字,但是如果有多個插槽,要插往不同的地方呢

首先給slot添加name屬性

image-20220509190648475

然後在我們標簽體這邊,誰要往哪個插槽添加信息,就把他的 slot屬性寫為誰

image-20220509190748381

註意

當我想把一大段代碼加入到一個slot插槽,但是我又不能一個一個去寫,就有點耗時間了,可以將他們都包在一個div裡面然後給div洗衣歌slot,但是這樣就影響頁面佈局了,我們也可以寫一個template標簽包在這裡面就不會影響佈局了

image-20220509191914243

如果用到了template,那麼vue2.6很新的的一個更新,template可以這樣來寫slot名字,鍵值對,而且沒有引號

image-20220509191852149

這個寫法只能應用於template標簽

4.作用域插槽

什麼時候要用到這個作用域插槽

數據在組件的自身,但根據數據生成的數據結構需要組建的使用者來決定

就是數據沒有在我們的插槽的使用者這裡,什麼叫做插槽的使用者,就是我們slot不是等著標簽來填充嗎,誰來填充這個插槽誰就是使用者,就比如說上面這個案例,這個template就是插槽的使用者

我把數據轉移到list裡面去,那麼app裡面定義的這些games,這些list標簽也就是插槽的使用者都用不到數據了,數據轉移到list裡面去了,現在的情況就很像作用域發生了變化,list這個作用域裡面可以使用games,但是插槽使用者在app裡面就用不到,這個時候就要用到作用域插槽了

image-20220509194439682

怎麼來用,首先要知道一句話,插槽的動態綁定,是把這個數據送到他的使用者,註意是使用者,並不是平時這樣是送到下級

image-20220509194752571

我們使用者這邊怎麼來接受這個參數呢?必須使用template標簽,並且裡面寫一個屬性scope沒有d,他的值隨便取,就是一個對象,這裡麵包含了slot傳過來的所有數據,如果就傳過來了一個data那就是值.data就可以取到

image-20220509195043429

------------恢復內容結束------------


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 推薦文章: eclipse導入JDBC MySQL詳細安裝 菜鳥java MySQL連接教程 步驟: 找到MySQL的連接Java的jar文件; 如下圖: 在eclipse項目文件下找到lib文件夾,沒有的話就自己創建一個,然後將上面找到的jar文件複製粘貼到lib文件夾的下麵; 如下圖: 給這個j ...
  • 業務上雲的大背景對彈性與可靠性的要求越來越高,傳統架構的單機資料庫或是分片資料庫已經很難支撐快速增長的業務,如何解決這些痛點呢?一起來聽聽百度雲原生資料庫資深技術專家邱學達怎麼說。 ...
  • SQL語言基礎 SQL (Structured Query Language:結構化查詢語言) 是用於管理關係資料庫管理系統(RDBMS)。 SQL 的範圍包括數據插入、查詢、更新和刪除,資料庫模式創建和修改,以及數據訪問控制。 本文主要記錄一些主要的SQL命令(比如 SELECT、UPDATE、D ...
  • 一、使用PIVOT實現行轉列 1、首先創建一個學生表 CREATE TABLE [dbo].[Students]( [stu_id] [int] IDENTITY(1,1) NOT NULL, [stu_name] [varchar](100) NULL, [stu_hobby] [varchar] ...
  • 在進行視頻通話過程中,用戶有時候會出現網路不好的情況,比如在進行多人視頻通話或者多人唱歌時,我們需要實時顯示用戶的網路質量。 ...
  • 本次上新,共計新增94個開源組件。組件涉及工具、網路、UI、圖形、音視頻等多種功能。 ...
  • 5月11日晚19:00,Hello HarmonyOS進階系列應用篇第二課《電腦視覺》直播如約而至。 ...
  • 隨著新技術的不斷演進,人工智慧已經廣泛地應用到教育、金融、物流、零售、交通、醫療等各個領域。而在AI高速發展的當下,高效開發變得更為重要,如何將創意想法與AI技術深度融合,迅速轉化為可落地的AI應用,是開發者在激烈競爭中制勝的關鍵。 為了助力開發者快速上線AI業務,為消費者提供創新AI體驗,HMS ...
一周排行
    -Advertisement-
    Play Games
  • 前言 本文將以 C# 語言來實現一個簡單的布隆過濾器,為簡化說明,設計得很簡單,僅供學習使用。 感謝@時總百忙之中的指導。 布隆過濾器簡介 布隆過濾器(Bloom filter)是一種特殊的 Hash Table,能夠以較小的存儲空間較快地判斷出數據是否存在。常用於允許一定誤判率的數據過濾及防止緩存 ...
  • 目錄 一.簡介 二.效果演示 三.源碼下載 四.猜你喜歡 零基礎 OpenGL (ES) 學習路線推薦 : OpenGL (ES) 學習目錄 >> OpenGL ES 基礎 零基礎 OpenGL (ES) 學習路線推薦 : OpenGL (ES) 學習目錄 >> OpenGL ES 轉場 零基礎 O ...
  • 「簡單有價值的事情長期堅持做」 這是成功最簡單,但也最難學的秘訣。不經過訓練,人很難意識到時間複利的威力。 仙劍奇俠傳的「十里坡劍神」和金庸群俠傳的「十級野球拳」,就是簡單的事情持之以恆反覆做,最後就有巨大的威力 唐家三少成為網文收入第一,最重要的一步是十四年從未斷日更 這樣的案例很多,一開始可能成 ...
  • 迎面走來了你的面試官,身穿格子衫,挺著啤酒肚,髮際線嚴重後移的中年男子。 手拿泡著枸杞的保溫杯,胳膊夾著MacBook,MacBook上還貼著公司標語:“我愛加班”。 面試開始,直入正題。 面試官: 看你簡歷上面寫著精通MySQL,我先問你事務的特性是什麼? 老生常談,這個還有誰不會背的嗎? 我: ...
  • 基礎知識 python是一門腳本語言,它是解釋執行的。 python使用縮進做為語法,而且python2環境下同一個py文件中不能同時存在tab和空格縮進,否則會出錯,建議在IDE中顯示縮進符。 python在聲明變數時不寫數據類型,可以type(xx)來獲取欄位的類型,然後可以int(),list ...
  • 為什麼要多線程下載 俗話說要以終為始,那麼我們首先要明確多線程下載的目標是什麼,不外乎是為了更快的下載文件。那麼問題來了,多線程下載文件相比於單線程是不是更快? 對於這個問題可以看下圖。 橫坐標是線程數,縱坐標是使用對應線程數下載對應文件時花費的時間,藍橙綠代表下載文件的大小,每個線程下載對應文件2 ...
  • 詳細講解python爬蟲代碼,爬微博搜索結果的博文數據。 爬取欄位: 頁碼、微博id、微博bid、微博作者、發佈時間、微博內容、轉發數、評論數、點贊數。 爬蟲技術: 1、requests 發送請求 2、datetime 時間格式轉換 3、jsonpath 快速解析json數據 4、re 正則表達式提... ...
  • 背景: 一般我們可以用HashMap做本地緩存,但是HashMap功能比較弱,不支持Key過期,不支持數據範圍查找等。故在此實現了一個簡易的本地緩存,取名叫fastmap。 功能: 1.支持數據過期 2.支持等值查找 3.支持範圍查找 4.支持key排序 實現思路: 1.等值查找採用HashMap2 ...
  • 目錄 一.簡介 二.效果演示 三.源碼下載 四.猜你喜歡 零基礎 OpenGL (ES) 學習路線推薦 : OpenGL (ES) 學習目錄 >> OpenGL ES 基礎 零基礎 OpenGL (ES) 學習路線推薦 : OpenGL (ES) 學習目錄 >> OpenGL ES 轉場 零基礎 O ...
  • 本章是系列文章的第八章,用著色演算法進行寄存器的分配過程。 本文中的所有內容來自學習DCC888的學習筆記或者自己理解的整理,如需轉載請註明出處。周榮華@燧原科技 寄存器分配 寄存器分配是為程式處理的值找到存儲位置的問題 這些值可以存放到寄存器,也可以存放在記憶體中 寄存器更快,但數量有限 記憶體很多,但 ...