趙興華
【摘要】 科技的進步給我的生活方式帶來了巨大改變。數據采集、智能手機、無線傳輸等技術的進步加快了智能家居的發展,讓人們的生活更加便捷。我們可以利用電腦或移動終端遠程監控室內的溫度、耗電量、人,并可以遠程控制家居和電器等。由于室內監控信息是時刻變化的,為了讓web端為用戶呈現準確的數據,將室內的情況實時反饋到網頁上,我們采取了Ajax技術。對智能家居實現實時監控存在的困難進行分析,設定合理方案,完成Web端數據監控的實時性。
【關鍵詞】 智能家居 Ajax 實時監控
智能家居的實現結合多種技術,首先硬件監測設備將采集到的數據存入數據庫,web端監測時,需要每隔幾秒從服務器端獲取最新數據實現實時監測。高頻度的數據請求使得服務器負載過重,因此我們分析實時數據采集、傳輸、顯示過程中存在的瓶頸,并基于Ajax技術構建實時顯示解決方案。
一、Ajax技術及應用
Ajax 是一種創建交互式網頁應用的網頁開發技術。Ajax通過JavaScript可使用XMLHttpRequest對象來直接與服務器進行通信。通過這個對象, JavaScript 可在不重載頁面的情況下與 Web 服務器交換數據。Ajax在瀏覽器與 Web 服務器之間使用異步數據傳輸,網頁的更新只需從服務器請求少量的信息,無需重新獲取整個頁面。Ajax只進行局部頁面刷新,提高了系統性能,優化了用戶界面。
二、Web應用程序監控
1、傳統監測弊端分析。如果數據請求過程使用純粹的服務器端邏輯,這意味著每當頁面有更新需要,服務器會創建一個新的HTML文檔并將其發送到Wed端,因此應用程序失去了速度和動力學特性。為了使得Web端更具響應性、用戶友好,只需使單一的HTML文檔中的字段更新而無需重新加載完整的頁面。傳統的監測模式采用了純粹的服務器端邏輯,會導致更多的網絡流量。本文引入的基于Ajax的局部刷新策略是客戶端邏輯。
2、實時數據獲取方案。當用戶已經通過服務器的身份驗證,應用程序從服務器自動加載初始頁面。隨著HTML文檔被解釋,瀏覽器立即加載引用的CSS文件并執行JavaScript文件,為了給HTML文檔加入類型和信息。AJAX 從服務器端獲取JSON數據的實現,1、AJAX 的URL地址是JSON文件所在地址;2、如果請求成功并返回了數據,其余的代碼才會被執行;3、函數貫穿每一個高層JSON的鍵值,該鍵值包含了應用程序所需的數據;4、關鍵字匹配時,與該關鍵詞相關的數據需要提取和存儲。所有的數據暫存在數組中,最后注入到HTML中顯示給用戶。通過變化的AJAX請求的URL,可以使用相同的功能從服務器獲取不同的數據集[1]。
3、Ajax請求優化。為了實現實時數據在網絡頁面的顯示速率,提升用戶體驗感受,主要從兩個方面展開說明優化方案,涉及歷史頁面的分離保存以及緩存的利用。第一,歷史頁面的分離保存。應用程序初始化后,AJAX請求需要一些調整。每次加載初始頁面的時候都需要重新加載一遍初始數據,為了使得AJAX請求得到優化,如果選定一個特定的時間間隔來加載頁面,可以借助緩存中的數據代替每次都從服務器端請求數據,完成歷史頁面的重置。首先要創建一個獨立的二維數組用來存儲初始頁面和歷史頁面的數據,同時設定一些重要的變量,用來存儲初始頁面信息、室內溫度信息、濕度信息、耗電量等。這些變量只是在應用程序啟東時更新,或者監測用戶更改默認的頁面[2]。不同頁面的數據分離優勢在于歷史頁面的數據在設定的時間間隔內仍然存在,可以將有用的歷史數據應用到頁面更新中,而不是每次都回退到初始頁面[3]。第二,應用程序緩存。HTML5和Appcache具有緩存特色,最初是為了使web應用程序脫機運行。當一個站點第一次被訪問的時候會完成每個文件的下載[4]。為了后續訪問,文件從緩存加載到內存。然而,這個功能也可以用來減少在線網站應用程序加載時間。有一個清單文件包含緩存中存儲的每個文件的路徑,然后添加一個事件偵聽器用來檢查每次頁面加載時的清單文件。此偵聽器決定如果清單文件已經更新,緩存中已被刪除,那么清單中被指定的數據需要重新下載并存儲到緩存中。當監控頁面無需整體變化,只是一些監測數據進行更新時,我們就可以調取緩存中的頁面信息構建頁面。
三、總結
本文對智能家居監測流程進行了簡單概述,主要針對實時數據監測的問題進行了分析,找出傳統監測模式下的不足,基于Ajax技術采取局部刷新策略,設定了實時數據監測方案,減輕了服務器負載,提升了數據顯示效率。同時引入緩存機制,降低了頁面請求次數和數據請求量,降低了網絡傳輸流量。智能家居系統是融合了多種技術的綜合項目,能為用戶提供更加便捷、舒適的居住環境,隨著移動互聯網的發展,基于移動終端的監控是未來發展方向,如何為移動終端設定統一的接口是智能家居研究中十分重要的。
參 考 文 獻
[1] C. McDonough, The Pyramid Web Application Development Framework:Version 1. 0, Agendaless Consulting, 2011.
[2].JessejmaesGarrett著.Ajxa:ANewAPproachtowebApplieations.2005.2
[3] Robert.DHof.Ajax如何編織速度更快的網絡.商業周刊.2005年,11期
[4] B.Lawson and R.Shartp, Introducing HTML5, Berkeley, CA: Pearson Education, 2010.