Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 日韩电影中文字幕在线网站,成人欧美视频,国产视频大全

          整合營(yíng)銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          Python調(diào)用易語(yǔ)言動(dòng)態(tài)鏈接庫(kù),實(shí)現(xiàn)驗(yàn)證碼通殺例子

          天成功把易語(yǔ)言調(diào)用驗(yàn)證碼通殺的DLL在Python中成功調(diào)用了
          特此共享出來(lái),下面是識(shí)別截圖:

          識(shí)別方法1:

          私信小編01即可獲取大量Python學(xué)習(xí)資源

          # 來(lái)源:http://www.sanye.cx/?id=12022
          # 優(yōu)點(diǎn):載入快、識(shí)別速度高、識(shí)別精度較高
          # 缺點(diǎn):僅在32位Python環(huán)境中成功運(yùn)行
           
           
          # 獲取上級(jí)目錄
          path = os.path.abspath(os.path.dirname(os.getcwd()))
          # 獲取驗(yàn)證碼文件夾
          img_list = os.listdir(path + r"\captcha")
          # 載入識(shí)別庫(kù)
          dll = cdll.LoadLibrary(path + r"\ocr1\ocr.dll")
          # 初始化識(shí)別庫(kù)
          dll.init()
          # 遍歷圖片并識(shí)別
          for i in img_list:
              # 讀入圖片
              with open(path + r"\captcha\{0}".format(i), "rb") as file:
                  # 讀入圖片
                  image = file.read()
                  # 利用dll中的ocr函數(shù)進(jìn)行識(shí)別
                  Str = dll.ocr(image, len(image))
                  # 返回的是指針,所以此處將指針轉(zhuǎn)換為字符串,然后再編碼即可得到字符串類型
                  text = string_at(Str).decode("utf-8")
                  print(f"識(shí)別返回:{text},類型:{type(text)},ID地址:{id(text)}")

          識(shí)別方法2:

          # 來(lái)源:[url=https://www.52pojie.cn/thread-1072587-1-1.html]https://www.52pojie.cn/thread-1072587-1-1.html[/url]
          # 優(yōu)點(diǎn):識(shí)別速度高、識(shí)別精度高
          # 缺點(diǎn):僅在32位Python環(huán)境中成功運(yùn)行、載入時(shí)間較長(zhǎng)
           
          # 獲取上級(jí)目錄
          path = os.path.abspath(os.path.dirname(os.getcwd()))
          # 載入識(shí)別庫(kù)
          dll = cdll.LoadLibrary(path + r"\ocr2\OCRS.dll")
           
          # 載入字庫(kù)與建立字庫(kù)索引
          with open(path + r"\ocr2\通殺英文數(shù)字庫(kù).cnn", "rb") as file:
              # 載入字庫(kù)
              word_bank = file.read()
              # 建立字庫(kù)索引
              work_index = dll.INIT(path, word_bank, len(word_bank), -1, 1)
          # 讀入待識(shí)別圖片列表
          img_list = os.listdir(path + "\captcha")
          # 循環(huán)識(shí)別圖片并輸出
          for i in img_list:
              # 打開(kāi)指定圖片
              with open(path + "\captcha\{0}".format(i), "rb") as file_img:
                  # 讀入圖片
                  image = file_img.read()
                  Str = create_string_buffer(100)  # 創(chuàng)建文本緩沖區(qū)
                  dll.OCR(work_index, image, len(image), Str)  # 利用DLL中的識(shí)別函數(shù)進(jìn)行識(shí)別
                  text = Str.raw.decode("utf-8")  # 對(duì)識(shí)別的返回值進(jìn)行編碼
                  print(f"識(shí)別返回:{text},類型:{type(text)},ID地址:{id(text)}")

          1.自己弄了一個(gè)類,下載下來(lái)直接使用,調(diào)用方法:

          dll = Ver_code_1(DLL文件所在的文件夾目錄)
          #或者
          dll = Ver_code_2(DLL文件所在的文件夾目錄)
          #識(shí)別圖片:
          dll.ocr(圖片)

          2.修正了識(shí)別庫(kù)2空白字符未消除,無(wú)法正確判斷長(zhǎng)度的問(wèn)題(可以利用固定長(zhǎng)度判斷是否符合,進(jìn)行初步篩選,避免提交后網(wǎng)頁(yè)返回驗(yàn)證碼錯(cuò)誤)

          import os
          from ctypes import *
           
           
          class Ver_code_1:
              # 啟動(dòng)時(shí)需要傳入ocr.dll
              def __init__(self, path):
                  # 載入識(shí)別庫(kù)
                  self.dll = cdll.LoadLibrary(path + r"\ocr.dll")
                  # 初始化識(shí)別庫(kù)
                  self.dll.init()
           
              def ocr(self, image):
                  Str = self.dll.ocr(image, len(image))
                  # 返回的是指針,所以此處將指針轉(zhuǎn)換為字符串,然后再編碼即可得到字符串類型
                  return string_at(Str).decode("utf-8")
           
           
          class Ver_code_2:
              def __init__(self, path):
                  # 載入識(shí)別庫(kù)
                  self.dll = cdll.LoadLibrary(path + r"\OCRS.dll")
                  # 載入字庫(kù)與建立字庫(kù)索引
                  with open(path + r"\通殺英文數(shù)字庫(kù).cnn", "rb") as file:
                      # 載入字庫(kù)
                      self.word_bank = file.read()
                      # 建立字庫(kù)索引
                      self.word_index = self.dll.INIT(path, self.word_bank, len(self.word_bank), -1, 1)
           
              def ocr(self, image):
                  Str = create_string_buffer(100)  # 創(chuàng)建文本緩沖區(qū)
                  self.dll.OCR(self.word_index, image, len(image), Str)  # 利用DLL中的識(shí)別函數(shù)進(jìn)行識(shí)別
                  return Str.raw.decode("utf-8").rstrip('\x00')  # 對(duì)識(shí)別的返回值進(jìn)行編碼后返回,這里的\x00是刪除緩沖區(qū)的空白符

          注意!測(cè)試環(huán)境為:
          Python 3.9.2 (tags/v3.9.2:1a79785, Feb 19 2021, 13:30:23) [MSC v.1928 32 bit (Intel)] on win32
          經(jīng)測(cè)試,無(wú)法在64位環(huán)境下調(diào)用,如有大佬能實(shí)現(xiàn),煩請(qǐng)告知一下

          關(guān)于DLL改64位的思路:

          我找到了論壇中的IDA pro,成功將DLL進(jìn)行了反編譯,如圖:

          其實(shí)最關(guān)鍵的就是以上的init以及ocr兩個(gè)函數(shù),但是后續(xù)如何將IDA pro項(xiàng)目轉(zhuǎn)換為64位,然后進(jìn)行編譯,目前沒(méi)有找到合適的方法,如果有大佬麻煩告知一下。

          久沒(méi)有再頭條發(fā)文了,最近看到好多有關(guān)易語(yǔ)言的是是非非,說(shuō)易語(yǔ)言這個(gè)不行,那個(gè)不行的,其實(shí)這些人說(shuō)的都很有道理,為啥呢,易語(yǔ)言確實(shí)有很多不足的地方,但是我們看事物不能光看它的不好的地方,要有發(fā)現(xiàn)美的眼睛,當(dāng)我們好好的去研究易語(yǔ)言的時(shí)候,我們會(huì)發(fā)現(xiàn)它還是有很多不錯(cuò)的地方的。

          首先易語(yǔ)言是中文的,對(duì)于中國(guó)人來(lái)說(shuō),他降低了理解語(yǔ)言的門(mén)檻。很多人感覺(jué)其他語(yǔ)言難以入門(mén),其實(shí)是他們無(wú)法記住那么多的函數(shù)方法,但是中文就不一樣呀,很直觀的就可以理解,也不用一個(gè)一個(gè)命令取翻譯。

          先不說(shuō)別的了,我們今天的主題是用易語(yǔ)言做web開(kāi)發(fā)。大家都知道現(xiàn)在很多系統(tǒng)都已經(jīng)從以前的C/S模式轉(zhuǎn)變到B/S的架構(gòu),因?yàn)锽/S的優(yōu)點(diǎn)實(shí)在是太多了,最重要的是客戶只需要一個(gè)瀏覽器就可以打開(kāi)我們的程序,非常的輕巧方便。很多人以為E語(yǔ)言開(kāi)發(fā)不了web應(yīng)用,其實(shí)不然,今天我在這里要介紹一個(gè)易語(yǔ)言支持庫(kù),就是E2EE,這個(gè)模塊用來(lái)開(kāi)發(fā)web應(yīng)用實(shí)在是太好用了。

          如果你想用E語(yǔ)言+E2EE開(kāi)發(fā)web網(wǎng)站,那么除了要有一定的易語(yǔ)言基礎(chǔ),還要懂一些 HTML, CSS, JavaScript 等知識(shí),畢竟網(wǎng)站這個(gè)玩意光靠后端是不行的,當(dāng)然也可以看一下layui等前端框架,非常好用。

          先來(lái)看一下E2EE支持庫(kù)的特點(diǎn):

          高效穩(wěn)定的設(shè)計(jì)

          強(qiáng)大的框架設(shè)計(jì)和大量測(cè)試,結(jié)合IOCP,保證服務(wù)器高效極速而且絕對(duì)可靠穩(wěn)定。

          模塊容器化技術(shù)

          用最簡(jiǎn)單的方式將別人的服務(wù)器功能掛到你的網(wǎng)站下,成為你網(wǎng)站的一部分。將網(wǎng)站功能做成不同模塊,掛到同一服務(wù)器實(shí)例下,可分可合。

          優(yōu)雅的網(wǎng)址

          可以使用RESTful風(fēng)格的網(wǎng)址,也能使用正則表達(dá)式定義網(wǎng)址,傳遞到你的處理函數(shù)。自由定義,如你所想。

          模板系統(tǒng)

          強(qiáng)大,易用的模板系統(tǒng),設(shè)計(jì)簡(jiǎn)單,循環(huán)、條件判斷、錯(cuò)誤提示讓你方便快速的生成頁(yè)面內(nèi)容。

          多編碼支持

          支持UTF8、GBK等各種編碼,模板、配置和網(wǎng)頁(yè)等都全面支持各種編碼,不用做任何編碼轉(zhuǎn)換工作自動(dòng)完成以各種編碼輸入輸出。

          可定制權(quán)限控制

          通過(guò)函數(shù)標(biāo)簽的機(jī)制,你可以對(duì)任意自己定義的范圍內(nèi)的函數(shù)做預(yù)處理控制,注入屬性、終止業(yè)務(wù)邏輯或者提前輸出任意內(nèi)容。

          強(qiáng)大數(shù)據(jù)庫(kù)功能

          內(nèi)置通用數(shù)據(jù)庫(kù)連接池,抽象數(shù)據(jù)庫(kù)連接,確保高并發(fā)下的數(shù)據(jù)庫(kù)操作。

          自定義數(shù)據(jù)映射

          易語(yǔ)言自定義數(shù)據(jù)映射內(nèi)置對(duì)象,映射到數(shù)據(jù)庫(kù),超出想象的方便。

          通用存取對(duì)象

          鍵值對(duì)和列表對(duì)象能夠高效的做為通用的數(shù)據(jù)傳遞,簡(jiǎn)單易用通用。

          全配置化

          服務(wù)器全配置化,隨時(shí)適應(yīng)環(huán)境的變化。

          下面看一組示例代碼,我們寫(xiě)幾行代碼,快速的生成一個(gè)web頁(yè)面。

          首先使用控制中心創(chuàng)建一個(gè)網(wǎng)站

          E2EE控制中心

          下一步,因?yàn)槲业?0端口已經(jīng)被占用了,所以我把端口改一下

          端口改為8765

          此時(shí)控制中心會(huì)在你選擇的目錄下面創(chuàng)建出搭建網(wǎng)站所需要的所有東西。

          控制中心這里面也可以修改端口等一系列參數(shù)。

          控制中心

          一個(gè)簡(jiǎn)單的動(dòng)態(tài)網(wǎng)頁(yè)的代碼也非常簡(jiǎn)單,就只有幾行,源代碼如下:

          我們輸入預(yù)覽網(wǎng)址:http://127.0.0.1:8765 打開(kāi)后就得到了如下頁(yè)面

          這樣呢,一個(gè)簡(jiǎn)單的網(wǎng)站就已經(jīng)運(yùn)行起來(lái)了。當(dāng)然了,E2EE還有很多其他功能,你可以自己去發(fā)現(xiàn),有了它,微信小程序啥啥的都不是問(wèn)題了,我用它寫(xiě)了幾個(gè)程序,數(shù)據(jù)庫(kù)涉及oracle、mysql、sqlserver,都非常的穩(wěn)定,跑了近半年了,妥妥的。

          要注意的是E2EE的免費(fèi)版本是有一定的功能限制的,當(dāng)然了,個(gè)人或者企業(yè)需求不高的情況下,完全是足夠用了,如果需求高的,也可以購(gòu)買企業(yè)版。如果覺(jué)得E2EE好玩的,可以去官方網(wǎng)站看看,官方也給出了很多視頻教程,還是挺不錯(cuò)的,如果有問(wèn)題也歡迎加我好友,跟我一起交流學(xué)習(xí)。

          對(duì)了,別忘了點(diǎn)贊+關(guān)注!

          章先介紹一些HTML最基礎(chǔ)的考點(diǎn),很多大長(zhǎng)面試官喜歡由淺入深地考察知識(shí)。而對(duì)于一些基礎(chǔ)問(wèn)題的回答,很多同學(xué)反而因組織不好語(yǔ)言而給面試官留下不好的印象。本章節(jié)我們就帶大家一一整理和回顧。

          1.1 DOCTYPE的作用

          面試官:我們現(xiàn)在寫(xiě)HTML代碼第一行通常是 !<DOCTYPE HTML>,請(qǐng)介紹一下DOCTYPE的作用(基礎(chǔ)題)

          DOCTYPE標(biāo)簽是一種標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言的文檔類型聲明,且必須聲明在文檔的第一行,來(lái)告知瀏覽器用何種文檔標(biāo)準(zhǔn)來(lái)解析這個(gè)網(wǎng)頁(yè),不同的渲染模式會(huì)影響瀏覽器對(duì)CSS和JavaScript的解析標(biāo)準(zhǔn)。

          面試官:瀏覽器解析文檔有哪幾種解析模式呢?(拓展題)

          文檔的解析模式目前主要有 *兩種(注意:還有一種“準(zhǔn)標(biāo)準(zhǔn)模式”只在IE8瀏覽器里,目前主流瀏覽器已無(wú)需考慮):

          1. 怪異模式(quirks mode):此種模式會(huì)模擬更舊的瀏覽器的行為。如果沒(méi)有聲明DOCTYPE,瀏覽器默認(rèn)會(huì)以這種模式解析文檔。
          2. 標(biāo)準(zhǔn)模式(standards mode):瀏覽器使用W3C的標(biāo)準(zhǔn)解析渲染頁(yè)面。

          面試官:如何快速檢查頁(yè)面的解析模式?(發(fā)散題)

          HTML文檔對(duì)象有個(gè) compatMode 屬性,用于記錄頁(yè)面的解析模式:

          • 如果文檔處于“混雜模式”,則該屬性值為 BackCompat
          • 如果文檔處于“標(biāo)準(zhǔn)模式”或者“準(zhǔn)標(biāo)準(zhǔn)模式(almost standards mode)”,則該屬性為 CSS1Compat
          const mode = document.compatMode; // 頁(yè)面的解析模式
          if (mode === "BackCompat") {
            // 渲染模式為混雜模式
          }

          1.2 HTML的語(yǔ)義化

          面試官:什么是HTML語(yǔ)義化,語(yǔ)義化的作用是什么?(基礎(chǔ)題)

          語(yǔ)義化是指使用恰當(dāng)語(yǔ)義的html標(biāo)簽,讓頁(yè)面具有良好的結(jié)構(gòu)與含義;比如<p>標(biāo)簽就代表段落,<article>代表正文內(nèi)容等等。語(yǔ)義化的作用有兩點(diǎn):

          • 開(kāi)發(fā)者友好:使用語(yǔ)義類標(biāo)簽增強(qiáng)代碼的可讀性,開(kāi)發(fā)者也能夠清晰地看出網(wǎng)頁(yè)的結(jié)構(gòu),易維護(hù);
          • 機(jī)器友好:帶有語(yǔ)義的標(biāo)簽適合搜索引擎的爬蟲(chóng)爬取有效信息,能快速生成網(wǎng)頁(yè)骨架或文章提綱,SEO友好。

          面試官:你平時(shí)有哪些語(yǔ)義化的建議或最佳實(shí)踐?(發(fā)散題)

          根據(jù)語(yǔ)義化的優(yōu)點(diǎn),對(duì)于富文本內(nèi)容類的網(wǎng)站(如門(mén)戶、新聞網(wǎng)站),語(yǔ)義化利于SEO,對(duì)網(wǎng)站內(nèi)容的傳播有很大幫助,此類網(wǎng)站應(yīng)該重視和實(shí)踐語(yǔ)義化標(biāo)準(zhǔn)。而對(duì)于一些系統(tǒng)類網(wǎng)站的搭建,語(yǔ)義化就沒(méi)有那沒(méi)重要了,甚至刻意做語(yǔ)義化反而會(huì)影響開(kāi)發(fā)者的效率,此類網(wǎng)站可以對(duì)頁(yè)面骨架做語(yǔ)義化,至于模塊的交互組件和表單等則無(wú)需刻意做語(yǔ)義化。

          1.3 HTML5新增內(nèi)容考察

          面試官:你知道HTML5有哪些新增的東西嗎?(基礎(chǔ)題)

          HTML5新增的內(nèi)容確實(shí)不少,面試官不會(huì)要求你全部記下來(lái),我們可以挑重要的東西來(lái)回答:

          • 新的文檔解析順序:不再基于 *SGML;
          • 全面支持CSS3:
          • 加了一些語(yǔ)義化元素:<header><mainer><footer><section><nav>
          • 刪了一些樣式類元素:<font><big><center>
          • 表單能力加強(qiáng):<input>的新類型(date、email、url等)、新屬性(autocomplete、autofocus等)
          • 新的屬性:ping(用于a與area)、charset(用于meta)、async(用于script)等
          • 定位能力:navigator.geolocation
          • 多媒體支持:<video>(視頻)、<audio>(音頻)等
          • 2D/3D 制圖支持:支持svg、canvas繪圖和動(dòng)畫(huà)等
          • 新的緩存策略:Localstorage、SessionStorage、IndexedDB等
          • 新的網(wǎng)絡(luò)協(xié)議:WebSocket
          • 新的跨域通信方案:XHTMLHttpRequest2、PostMessage......

          拓展:什么是SGML

          • SGML 即Standard Globalized Markup Language 是用來(lái)定義標(biāo)準(zhǔn)的標(biāo)記語(yǔ)言,簡(jiǎn)單的說(shuō),就是定義文檔的元語(yǔ)言。
          • HTML 是基于SGML 的超鏈接語(yǔ)言,可以用于創(chuàng)建Web頁(yè)面。在DTD 內(nèi)部定義了標(biāo)簽的規(guī)則,DTD就是使用SGML 語(yǔ)言創(chuàng)建的。
          • HTML5不是基于SGML 語(yǔ)言的,因此不需要DTD ,它是一種全新的標(biāo)記語(yǔ)言,有自己的解析規(guī)則,HTML5的語(yǔ)法規(guī)則與之前版本有很大的差別,可以稱的上是一種全新的語(yǔ)言

          1.4 meta標(biāo)簽

          面試官:介紹一下<meta>標(biāo)簽的用途 (基礎(chǔ)題)

          meta標(biāo)簽由namecontent兩個(gè)屬性來(lái)定義,來(lái)描述一個(gè)HTML網(wǎng)頁(yè)文檔的元信息,例如作者、日期和時(shí)間、網(wǎng)頁(yè)描述、關(guān)鍵詞、頁(yè)面刷新等,除了一些http標(biāo)準(zhǔn)規(guī)定了一些name作為大家使用的共識(shí),開(kāi)發(fā)者也可以自定義name

          面試官:移動(dòng)端適配的viewpoint,能否手寫(xiě)一下?(拓展題)

          <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">

          1.5 src和href的區(qū)別

          面試官:介紹一下srchref的區(qū)別(基礎(chǔ)題)

          • src是指向外部資源的位置,指向的內(nèi)容會(huì)嵌入到文檔中當(dāng)前標(biāo)簽所在的位置,在請(qǐng)求src資源時(shí)會(huì)將其指向的資源下載并應(yīng)用到文檔內(nèi),如JS腳本,img圖片和frame等元素。當(dāng)瀏覽器解析到該元素時(shí),會(huì)暫停其他資源的下載和處理,直到將該資源加載、編譯、執(zhí)行完畢,所以一般JS腳本會(huì)放在底部而不是頭部。

          • href是指向網(wǎng)絡(luò)資源所在位置(的超鏈接),用來(lái)建立和當(dāng)前元素或文檔之間的連接,當(dāng)瀏覽器識(shí)別到它他指向的文件時(shí),就會(huì)并行下載資源,不會(huì)停止對(duì)當(dāng)前文檔的處理

          1.6 img標(biāo)簽的srcset

          面試官:介紹一下<img>標(biāo)簽的srcsetsizes屬性的作用(基礎(chǔ)題)

          可以設(shè)計(jì)響應(yīng)式圖片,我們可以使用兩個(gè)新的屬性srcsetsizes來(lái)提供更多額外的資源圖像和提示,幫助瀏覽器選擇正確的一個(gè)資源

          • srcset 定義了我們?cè)试S瀏覽器選擇的圖像集,以及每個(gè)圖像的大小

          • sizes 定義了一組媒體條件(例如屏幕寬度)并且指明當(dāng)某些媒體條件為真時(shí),什么樣的圖片尺寸是最佳選擇

          所以,有了這些屬性,瀏覽器會(huì):

          • 查看設(shè)備寬度
          • 檢查 sizes 列表中哪個(gè)媒體條件是第一個(gè)為真
          • 查看給予該媒體查詢的槽大小
          • 加載 srcset 列表中引用的最接近所選的槽大小的圖像
          • srcset提供了根據(jù)屏幕條件選取圖片的能力
          <img src="clock-demo-thumb-200.png"
               alt="Clock"
               srcset="clock-demo-thumb-200.png 200w, clock-demo-thumb-400.png 400w"
               sizes="(min-width: 600px) 200px, 50vw"
          />

          1.7 script標(biāo)簽的defer和async

          面試官:介紹一下<script>標(biāo)簽的deferasync的作用(基礎(chǔ)題)

          • defer:瀏覽器指示腳本在文檔被解析后執(zhí)行,<script>被異步加載后并不會(huì)立刻執(zhí)行,而是等待文檔被解析完畢后執(zhí)行

          • async:同樣是異步加載腳本,區(qū)別是腳本加載完畢后立即執(zhí)行,這導(dǎo)致async屬性下的腳本是亂序的,對(duì)于<script>有先后依賴關(guān)系的情況,并不適用

            如下圖:藍(lán)色線代表網(wǎng)絡(luò)讀取,紅色線代表執(zhí)行時(shí)間,這倆都是針對(duì)腳本的;綠色線代表 HTML 解析

          1.8 前端數(shù)據(jù)存儲(chǔ)的方式

          面試官:前端有哪幾種數(shù)據(jù)存儲(chǔ)方式?(基礎(chǔ)題)

          主要的存儲(chǔ)方式有Cookie、LocalStorage、SessionStorage、IndexedDB、WebSQL,它們的優(yōu)缺點(diǎn)如下:

          • Cookie:在HTML5標(biāo)準(zhǔn)前本地儲(chǔ)存的主要方式
            • 優(yōu)點(diǎn)是兼容性好,請(qǐng)求頭自帶cookie方便可以和服務(wù)端進(jìn)行交互
            • 缺點(diǎn)是大小只有4k,請(qǐng)求頭攜帶cookie浪費(fèi)流量,每個(gè)domain限制20個(gè)cookie,JS無(wú)法直接操作,需要自行封裝
          • LocalStorage:以鍵值對(duì)為標(biāo)準(zhǔn)的數(shù)據(jù)存儲(chǔ)方式
            • 優(yōu)點(diǎn)是操作方便,永久性儲(chǔ)存(除非手動(dòng)刪除)大小為5M
            • 缺點(diǎn)是兼容IE8+
          • SessionStorage:與localStorage基本類似,區(qū)別是**sessionStorage當(dāng)頁(yè)面關(guān)閉后會(huì)被清理
            • 優(yōu)點(diǎn)是會(huì)話級(jí)隨存隨取,不占用本地空間,操作方便
            • 缺點(diǎn)是不能在所有同源窗口中共享,是會(huì)話級(jí)別的儲(chǔ)存方式,兼容IE8+
          • IndexedDB:是被正式納入HTML5標(biāo)準(zhǔn)的數(shù)據(jù)庫(kù)儲(chǔ)存方案,它是NoSQL數(shù)據(jù)庫(kù),用鍵值對(duì)進(jìn)行儲(chǔ)存,可以進(jìn)行快速讀取操作
            • 優(yōu)點(diǎn)是存儲(chǔ)量更大,非常適合web場(chǎng)景,同時(shí)支持JS進(jìn)行操作,非常方便
            • 缺點(diǎn)是兼容性IE8+
          • WebSQL:類似SQLite,是真正意義上的關(guān)系型數(shù)據(jù)庫(kù),用sql進(jìn)行操作
            • 優(yōu)點(diǎn)是關(guān)系型數(shù)據(jù)庫(kù),適合大型的離線web應(yīng)用
            • 缺點(diǎn)是JS需要通過(guò)transaction操作sql,火狐瀏覽器不支持

          拓展:如何操作webSql

          // WebSql操作實(shí)例
          var db = openDatabase('mydb', '1.0', 'Test DB', 2 * 1024 * 1024);
          var msg;
          
          // 建表 => 插入 => 刪除
          db.transaction(function (tx) {
            tx.executeSql('CREATE TABLE IF NOT EXISTS LOGS (id unique, log)');
            tx.executeSql('INSERT INTO LOGS (id, log) VALUES (1, "菜鳥(niǎo)教程")');
            tx.executeSql('INSERT INTO LOGS (id, log) VALUES (2, "www.runoob.com")');
            tx.executeSql('DELETE FROM LOGS  WHERE id=1');
            msg = '<p>數(shù)據(jù)表已創(chuàng)建,且插入了兩條數(shù)據(jù),然后又刪除了第一條。</p>';
            document.querySelector('#status').innerHTML =  msg;
          });

          1.9 WebSocket考點(diǎn)

          面試官:介紹一下webSocket的特點(diǎn)和作用(基礎(chǔ)題)

          WebSocket 是 HTML5 開(kāi)始提供的一種在單個(gè) TCP 連接上進(jìn)行全雙工通訊的協(xié)議。它允許服務(wù)端主動(dòng)向客戶端推送數(shù)據(jù)。在 WebSocket API 中,瀏覽器和服務(wù)器只需要完成一次握手,兩者之間就直接可以創(chuàng)建持久性的連接,并進(jìn)行雙向數(shù)據(jù)傳輸。

          在 WebSocket API 中,瀏覽器和服務(wù)器只需要做一個(gè)握手的動(dòng)作,然后,瀏覽器和服務(wù)器之間就形成了一條快速通道。兩者之間就直接可以數(shù)據(jù)互相傳送

          本文由博客一文多發(fā)平臺(tái) OpenWrite 發(fā)布!


          主站蜘蛛池模板: 亚洲福利秒拍一区二区| 久久精品一区二区三区资源网 | 东京热无码av一区二区| 91秒拍国产福利一区| 国产AV天堂无码一区二区三区| 国产高清不卡一区二区| 国产精品自在拍一区二区不卡| 日本一区二区三区精品视频| 韩国福利一区二区美女视频| 精品无码国产一区二区三区AV| 亲子乱av一区二区三区| 中文字幕一区二区三区四区| 精品在线一区二区| 成人毛片一区二区| 性盈盈影院免费视频观看在线一区| 精品国产一区二区三区四区| 51视频国产精品一区二区| 精品无码AV一区二区三区不卡| 亚洲国产一区在线| 无码人妻一区二区三区免费n鬼沢| 99久久精品国产高清一区二区| 精品视频一区二区三区| 久久精品国产亚洲一区二区三区 | 伊人久久精品无码av一区| 中文字幕无线码一区| 中文字幕永久一区二区三区在线观看| www亚洲精品少妇裸乳一区二区 | 少妇精品久久久一区二区三区| 日韩电影一区二区三区| 一区二区三区国产精品| 亚洲综合av一区二区三区不卡| 日韩一区二区超清视频| 日本精品视频一区二区| 精品视频在线观看你懂的一区 | 国产精品成人99一区无码| 国产一区二区在线|播放| 亚洲一区二区三区无码影院| 亚洲日韩精品一区二区三区| 日韩一区二区在线播放| 国产一区二区三区精品久久呦| 亚洲午夜日韩高清一区|