ESP32網(wǎng)頁控制二 利用AJAX傳輸數(shù)據(jù)流實(shí)現(xiàn)動態(tài)刷新
????????AJAX其實(shí)非常容易理解,首先瀏覽器訪問服務(wù)器就是一次請求,同時瀏覽器內(nèi)部也會根據(jù)HTML標(biāo)簽定義訪問對應(yīng)的JS、CSS文檔、圖片等數(shù)據(jù)這些都是通過HTML定義完成的,AJAX其實(shí)就是一個你可以自由訪問服務(wù)器獲取數(shù)據(jù)并分析數(shù)據(jù)實(shí)現(xiàn)HTML代碼動態(tài)變化的一種技術(shù)工具,例如瀏覽照片網(wǎng)站滾輪拖到底部過一會頁面就實(shí)現(xiàn)了新的圖片載入其實(shí)就是AJAX技術(shù)的應(yīng)用,除了增加網(wǎng)頁元素也可以根據(jù)收到的信息改變網(wǎng)頁的元素。
????????在正常的網(wǎng)頁開發(fā)中往往會請求JSON數(shù)據(jù)來解析實(shí)施數(shù)據(jù)的動態(tài)刷新,但是如果應(yīng)用在ESP32中就不太合適了因?yàn)樯蒍SON數(shù)據(jù)格式本身就擁有很多無效數(shù)據(jù)如:、{},所以直接傳輸字節(jié)就非常方便。
????????下面通過例子實(shí)現(xiàn)對ESP32的訪問并實(shí)時獲取遙控器通道數(shù)據(jù)。
JS代碼
ESP32 響應(yīng)代碼
如果直接使用JSON傳輸我們可以大概預(yù)估一下傳輸數(shù)據(jù)量,下面是標(biāo)準(zhǔn)格式的一個JSON示例。
一個通道就需要大概20多個字節(jié),而直接使用數(shù)據(jù)流即便18個通道也就38個字節(jié),所以在ESP32編寫瀏覽器響應(yīng)時盡量使用字節(jié)流響應(yīng)方式對節(jié)省時鐘周期十分有效,方便ESP32同時處理其他對實(shí)時性高的任務(wù)。
下一篇介紹如何生成字節(jié)數(shù)組發(fā)送給ESP32并使用結(jié)構(gòu)體解析瀏覽器發(fā)送回來的設(shè)置數(shù)據(jù)。