htm5 websocket實現資料查詢應用

2021-09-06 07:05:21 字數 2281 閱讀 7928

在之前的文章講述了使用websocket呼叫遠端方式的功能,在這基礎我們可以簡單地使用websocket進行資料處理方面的應用;只需要在方法執行相關的資料庫操作返回即可,結合jeasyui庫所提供豐富的控制項進行資料應用處理變得非常簡單的事情.下面使用jeasyui和websocket實現乙個查詢northwind資料訂單的應用案例.

首先分析一下以下乙個訂單查詢案例所需要的邏輯功能.

從以上的案例圖中可以得到包括的功能如下:

1)雇員查詢

2)客戶查詢

3)訂單分頁查詢

4)訂單明細查詢

針對以上功能可以實現簡單的邏輯查詢,**如下:

public class handler

public ilistlistcustomers()

public ilistgetorderdetail(int orderid)

", orderid);

return (order.orderid == orderid).list();

}public ordersearchresult listorder(orderssearch search)

\t customer:", search.employeeid, search.customerid);

ordersearchresult result = new ordersearchresult();

expression exp = new expression();

if (!string.isnullorempty(search.customerid))

exp &= customer.customerid.at() == search.customerid;

if (search.employeeid > 0)

exp &= employee.employeeid.at() == search.employeeid;

int count = exp.count();

result.orders = exp.list(new region(search.page, search.pagesize));

result.count = count;

return result;}}

借助於開源元件smark.data的功能,只需要編寫簡單的**就能實現相應的資料查詢邏輯處理.

定義websocket連線:

//建立連線

function connect() ;

channel.disposed = function (evt) ;

channel.error = function (evt) ;

channel.connect($('#txthost').val());

}

在連線建立完成事件中進行資料查詢操作,由於連續進行3以上的websocket的傳送操作會導致傳送不成功,之於具體原因暫不清楚.所以只能通過settimeout來控制初始化的資料查詢.連線建立後就可以進行遠端方法呼叫,進行資料查詢操作具體相關**如下:

雇員查詢遠端呼叫方法:

//雇員查詢

var calllistemployees = };

function listemployee() );

$('#employees').combobox();

});}

客戶查詢遠端呼叫方法:

//客戶查詢

var calllistcustomers = };

function listcustomer() );

$('#customers').combobox();

});}

訂單查詢遠端呼叫方法:

//訂單查詢

var calllistorder = }

};function listorder() );

});}

訂單明細遠端呼叫方法:

//訂單明細

var callgetorderdetail = };

function getorderdetail() );

}

只需要以上簡單的**就可以實現乙個訂單查詢功能,看上去和傳統的ajax應用差不多,而這裡使用的服務是基於websocket而不是webserver.

WebSocket實現原理

websocket同http和https一樣,屬於tcp基礎上的應用層的協議 因此其必然也是存在三次握手四次揮手的過程 一般來說,我們使用的http協議只能由客戶端發起請求,而服務端無法直接主動進行資料推送,這就導致了如果服務端有持續的變化 如聊天室 而客戶端獲取起來較為複雜 如實時性和服務端壓力等...

htm5 本地儲存

登入 title script document ready function else function logincheckajaxfunction else 下次自動登入 if document.getelementbyid isautologinid checked else if inpu...

htm5 動畫製作 工具

引用 我們都愛html5和令人驚嘆的動畫文章向我們展示了其真正的潛力。我相信,這麼多的美麗和創意的動畫後,你認為至少一次建立自己的,因為我們面對它,html5是實用,重量輕,移動友好,為了取得成功,在今天的網路,你需要的一切。所以,你想建立乙個專業的動畫或應用程式使用純的html5和css3的一些選...