欧美三级国产三级日韩三级_亚洲熟妇丰满大屁股熟妇_欧美亚洲成人一区二区三区_国产精品久久久久久模特

pb開發(fā)web應(yīng)用 - 新聞資訊 - 云南小程序開發(fā)|云南軟件開發(fā)|云南網(wǎng)站建設(shè)-昆明葵宇信息科技有限公司

159-8711-8523

云南網(wǎng)建設(shè)/小程序開發(fā)/軟件開發(fā)

知識

不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價值,我們在追求其視覺表現(xiàn)的同時,更側(cè)重于功能的便捷,營銷的便利,運營的高效,讓網(wǎng)站成為營銷工具,讓軟件能切實提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序為后期升級提供便捷的支持!

您當(dāng)前位置>首頁 » 新聞資訊 » 網(wǎng)站建設(shè) >

pb開發(fā)web應(yīng)用

發(fā)表時間:2016-11-22

發(fā)布人:葵宇科技

瀏覽次數(shù):83

說到pb開發(fā)web,一般是將pb發(fā)布成webservice,或者轉(zhuǎn)成webform,兩者都有很多限制,比如需要iis安裝維護(hù)麻煩,調(diào)試?yán)щy,經(jīng)常遇到莫名的錯誤,找不到資料,樣式調(diào)整困難等問題。

隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展和APP的流行,WEB前端和APP開發(fā),越來越流行。要為前端和APP提供服務(wù)需要開發(fā)web應(yīng)用,如果能為熟悉的工具進(jìn)行開發(fā),可以大大節(jié)省開發(fā)時間,減少學(xué)習(xí)成本。SATRDA支持PB插件功能,通過插件,可以實現(xiàn)返回網(wǎng)頁、json,上傳下載文件,把業(yè)務(wù)邏輯放到服務(wù)器執(zhí)行等功能。

插件使用非常簡單,配置完成后插件就可以以多線程高效執(zhí)行了。

配置插件
將示例中的plugins文件夾拷備到satserver.exe相同目錄。

1. 修改plugins目錄下config.cfg,

{

"pbtest": {

"Dir": "test",

"Method":"Get;Post",

"URL":"/pbtest/**",

"Type": "pb",

"DLL":"pbvm90.dll",

"AppName":"plugin"

}

}

參數(shù)說明:

"Dir":"test" 表示插件的目錄,所有插件都在plugins目錄下面,這里值為”test”代表插件在plugins目錄下的test目錄

"Method":"Get;Post" 表示http調(diào)用的方法,可以為Get,Post,Any,Put,Delete中的一個或多個,多個以;分隔

"URL": "/pbtest/**" 表示響應(yīng)以http://ip:port/pbtest開頭的url。這里"/pbtest/**"可以響應(yīng)http://127.0.0.1:5555/pbtest/test.go,也可以響應(yīng)http://127.0.0.1:5555/pbtest/tttt.go等。如果設(shè)置為"URL": "/pbtest/test.go"則只響應(yīng)http://127.0.0.1:5555/pbtest/test.go

"Type": "pb" 表示調(diào)用PB插件

"DLL": "pbvm90.dll" 表示pb運行庫的dll名稱,這里是pb9的運行庫,其它版本請自行設(shè)置。比如12.5運行庫設(shè)置為"DLL": "pbvm125.dll"

"AppName":"plugin" 表示pb的application的名稱,一定要和創(chuàng)建的pb的名稱對應(yīng)起來

2. 創(chuàng)建PB工程

Pb工程和pbl創(chuàng)建和原來創(chuàng)建一樣,Applicationname需要和配置的AppName一樣。創(chuàng)建一個Function名稱為satrda_service,如圖:


當(dāng)配置的url被調(diào)用時,會調(diào)用到該方法。

satrda_service方法代碼


//處理Http請求
//as_url   
blob lb_url,lb_ctrl,lb_body,lb_buf

String ls_info,ls_value
long i,ll_len

//Sleep(10)
ResponseHeaderSet(al_context,"Content-Type","text/html; charset=utf-8")

lb_ctrl = blob("~t~t")
lb_url = blob(ls_info)

ls_value = space(255)
RequestHeaderGet(al_context,"Accept-Encoding",ls_value,255)

lb_url += blob(trim(ls_value)) + lb_ctrl

//ls_value = space(255)
//RequestFormValue(al_request,"name",ls_value,255)
//lb_url += blob(trim(ls_value)) + lb_ctrl

ResponseWrite(al_context,lb_url,len(lb_url))
//讀取提交的內(nèi)容
lb_buf = blob(space(1024))
do 
	ll_len = RequestRead(al_context,lb_buf,1024)
	if ll_len > 0 then
		lb_body += blobMid(lb_buf,1,ll_len)
	end if
loop while ll_len <> -1

ResponseWrite(al_context,lb_body,len(lb_body))



瀏覽器調(diào)用結(jié)果:


開發(fā)注意:
1.對象的名稱一定要是

方法的名稱一定要是satrda_service

2. 由于在不同的線程中,pb 對象不支持跨線程訪問,所以全局變量也會有多份,訪問的全局變量可能是不同的對象,不要依賴全局變量存儲公共信息。公共信息通過 session 或者數(shù)據(jù)庫存儲

運行效率和資源消耗:

大家肯定要關(guān)心,這樣運行效率怎么樣。我測試了一組數(shù)據(jù),編寫一個用例測試500個線程,每個執(zhí)行20次,總共1W次Http請求服務(wù)端通過插件方式和原生golang的方式返回簡單的hello world和http頭

pb插件代碼

ResponseHeaderSet(al_context,"Content-Type","text/html; charset=utf-8")

lb_body = blob("hello world!")
ResponseWrite(al_context,lb_body,len(lb_body))

用pb編寫的插件
耗時:13.6718秒,平均每次1.367毫秒
用golang原生返回
耗時:13.3281秒, 平均每次1.332毫秒

可以看出兩者用時幾乎相同,通過比較內(nèi)存使用也幾乎相同。



下載地址:
http://download.csdn.net/detail/pcwe2002/9690008
最新版本下載,交流請到QQ群:345559891



相關(guān)案例查看更多