• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            輕盈小刀-LUA

            突破C++的局限,讓編程語(yǔ)言大同
            隨筆 - 13, 文章 - 1, 評(píng)論 - 13, 引用 - 0
            數(shù)據(jù)加載中……

            2012年2月3日

            Htmlayout新Demo程序,簡(jiǎn)單的多頁(yè)面瀏覽器

            將IE控件加入進(jìn)來(lái),可以在Htmlayout頁(yè)面中使用IE控件,為了驗(yàn)證相關(guān)功能,做了這個(gè)Demo程序。
            實(shí)現(xiàn)以下功能:
            1.加入可拖動(dòng)按鈕工具欄
            2.帶標(biāo)簽的瀏覽器
            3.相同url地址只打開(kāi)一個(gè)標(biāo)簽

            其中頁(yè)面分4部分,工具欄,地址框,標(biāo)簽頁(yè),瀏覽器。這四部分可以非常翻遍的變換顯示位置,只需要修改css中以下相關(guān)部分
            body 
              flow:  "toolbar"
                     "addr"
                     "tabs" 
                     "page";
            }
            如果想用標(biāo)簽頁(yè)放在底部,只需要將tabs和page調(diào)換位置即可,簡(jiǎn)單好用。

            另外帶一個(gè)標(biāo)簽頁(yè)控件,在ctrl目錄中,主要是為了驗(yàn)證面向控件開(kāi)發(fā),即可以單獨(dú)做我們需要的控件,然后在頁(yè)面中組合,實(shí)現(xiàn)快速開(kāi)發(fā)。
            文件下載

            posted @ 2012-02-03 17:06 絕對(duì)在乎你 閱讀(3630) | 評(píng)論 (2)編輯 收藏

            2012年1月31日

            htmlayout與lua(二) 設(shè)計(jì)思路

            設(shè)計(jì)的思路是開(kāi)發(fā)方便,現(xiàn)在做到的是嵌入的腳本方式和javascript相同,即可以在html頁(yè)面中直接嵌入代碼,也能從外部引用,以此來(lái)滿足各種需要(或是方便或是為了便于管理)。在程序結(jié)構(gòu)上,用了兩層結(jié)構(gòu),dll程序中封裝了對(duì)htmlayout元素的基本操作以及必要的交互接口,為了是開(kāi)發(fā)更方便,更快捷,增加了lua腳本層,即ui目錄的相關(guān)腳本,這一次的目的是為了簡(jiǎn)化程序開(kāi)發(fā)時(shí)的代碼,提高開(kāi)發(fā)效率。現(xiàn)在看來(lái),效果還可以。

            嵌入腳本方式

            在html頁(yè)面文件中增加元素<script type="text/lua">...<script>即可添加頁(yè)面腳本,每個(gè)頁(yè)面的腳本空間是獨(dú)立的,即此頁(yè)面定義的函數(shù)只能是此頁(yè)面才能使用,同時(shí)腳本的初始化是在頁(yè)面加載完成之后在加載的,所以沒(méi)有javascript類似的onload消息處理,直接將需要初始化執(zhí)行的代碼放在外部即可執(zhí)行。

            元素引用方式

            在腳本中操作元素有以下幾種方式:
            1.最簡(jiǎn)單的方式是直接給元素附上id屬性,這樣在腳本中就可以直接使用這個(gè)id名稱訪問(wèn)對(duì)應(yīng)的元素了
            2.通過(guò)函數(shù)E查找元素,參數(shù)為css選擇其,如local d = E('div[type="test"]')

            元素操作

            在獲得元素對(duì)象之后,操作的方式涉及到以下幾個(gè)部分:
            1.修改style,直接用obj.style['name'] = value; 即修改元素的style中的name,取值直接使用obj.style['name']即可
            2.取元素屬性用obj.attributes['name'] = value,用法和style相同
            3.和html顯示無(wú)關(guān)的數(shù)據(jù),就如同普通的lua table操作即可,如obj.mypro = '1',因?yàn)楂@得元素對(duì)象本身就是一個(gè)table,所有l(wèi)ua table的功能都支持

            posted @ 2012-01-31 23:24 絕對(duì)在乎你 閱讀(3234) | 評(píng)論 (1)編輯 收藏

            2012年1月30日

            htmlayout中嵌入lua腳本

            去年下半年工作調(diào)整,終于有時(shí)間開(kāi)始做一些htmlayout封裝的工作,初步將
            lua腳本加上去了,使整個(gè)應(yīng)用程序有了一個(gè)統(tǒng)一框架,不論是界面還是業(yè)務(wù)邏輯
            都通過(guò)lua來(lái)實(shí)現(xiàn),lua不能做的采用模塊方式添加。

            關(guān)于界面封裝部分,參照sciter來(lái)做的,畢竟是和htmlayout是一家人,他們配合
            起來(lái)肯定是更好的,不過(guò)tiscript不會(huì)用,也沒(méi)人用,只能是自己用熟悉的東西
            來(lái)做了,不過(guò)總的來(lái)說(shuō)對(duì)這次封裝還是感到比較滿意的,前后改了3個(gè)版本,現(xiàn)在
            是用比較純粹的lua實(shí)現(xiàn)方式來(lái)做的,完全是一個(gè)lua第三方dll模塊,使用require
            加載即可使用,很方便,沒(méi)有什么特殊的地方,對(duì)同時(shí)使用其他的庫(kù)也比較方便。
            同時(shí)添加了自己想要的一些東西,如頁(yè)面之間的通訊,這樣可以實(shí)現(xiàn)像普通mfc
            程序那樣,彈出多個(gè)頁(yè)面,之間數(shù)據(jù)可以交互,同時(shí)頁(yè)面又是獨(dú)立開(kāi)發(fā)的,比較
            方面開(kāi)發(fā),同時(shí)控制每個(gè)頁(yè)面的代碼規(guī)模。因?yàn)樵?jīng)有個(gè)兄弟組用ajax做了一個(gè)
            管理頁(yè)面,整個(gè)頁(yè)面代碼5w多行,到后來(lái)根本沒(méi)辦法維護(hù)了。

            demo程序下載點(diǎn)擊下載(程序基于vs2008開(kāi)發(fā)的,如沒(méi)安裝過(guò)vs2008,請(qǐng)先
            安裝vs2008的再發(fā)布包  在這里
            demo集成了scintilla 編輯控件,主要是為了驗(yàn)證做第三放控件的能力,在編輯
            框中使用標(biāo)準(zhǔn)庫(kù)函數(shù)會(huì)自動(dòng)提示。以后準(zhǔn)備以此做一個(gè)集成開(kāi)發(fā)環(huán)境。

            posted @ 2012-01-30 23:29 絕對(duì)在乎你 閱讀(4001) | 評(píng)論 (3)編輯 收藏

            2010年6月3日

            sciTE使用收集

            1.配置說(shuō)明
            2.漢化配置文件
            3.一些擴(kuò)展示例

            posted @ 2010-06-03 23:04 絕對(duì)在乎你 閱讀(711) | 評(píng)論 (0)編輯 收藏

            2010年4月5日

            lua 應(yīng)用服務(wù)器

            線程模塊(luathread.dll)

                 新線程池創(chuàng)建,可以指定啟動(dòng)一個(gè)或多個(gè)線程

                 thread.new('線程入口腳本文件', 線程數(shù)量);
                 會(huì)根據(jù)線程數(shù)量創(chuàng)建多個(gè)線程,并且分別初始化每個(gè)線程的lua運(yùn)行環(huán)境,并執(zhí)行指定的線程腳本。

                 tlist = thread.newlist('隊(duì)列類型', '隊(duì)列名稱');
                 創(chuàng)建一個(gè)同步隊(duì)列,返回隊(duì)列對(duì)象,此對(duì)象必須可以在多個(gè)線程中共享的,而且相同名稱的對(duì)象
            只能存在一個(gè)。

                tlist:create_new_object();
                創(chuàng)建新的對(duì)象,次對(duì)象可以加入到請(qǐng)求隊(duì)列中

                tlist:push_request(obj);
                將通過(guò)create_new_object()創(chuàng)建的對(duì)加入到隊(duì)列中

                tlist:wait_for_req(timeout);
                等待隊(duì)列中有可以處理的請(qǐng)求

               tlist:get_request();
               從請(qǐng)求隊(duì)列中取出一個(gè)請(qǐng)求來(lái)進(jìn)行數(shù)據(jù)處理

              tlist:get_wait_object();
              返回可等待對(duì)象,以便腳本可以執(zhí)行多個(gè)對(duì)象的等待任務(wù)

              tlist:get_info();
              獲得隊(duì)列的一些相關(guān)信息

            線程代碼
            線程1:
               local tlist = thread.newlist('test', 'test0');
               local d = tlist:create_new_object();
               d:setdata('test', 'hello world');
               tlist:push_request(d);

            線程2:
               local  tlist  = thread.newlist('test', 'test0');
               while(tlist:wait_for_request(1000)) do
                         local d = tlist:get_request();
                        handlesomething(d);
               end

            posted @ 2010-04-05 23:20 絕對(duì)在乎你 閱讀(967) | 評(píng)論 (0)編輯 收藏

            2008年1月17日

            挖蟲(chóng)日記 01.17

            經(jīng)過(guò)昨天的再次日志的詳細(xì)記錄,把線程處理中的請(qǐng)求包記錄下來(lái),發(fā)現(xiàn)有比較大的共性,那就是出問(wèn)題的請(qǐng)求都是用戶登錄的請(qǐng)求,后臺(tái)仔細(xì)檢查這個(gè)請(qǐng)求的處理過(guò)程,發(fā)現(xiàn)有一個(gè)大問(wèn)題在里面:
               1。應(yīng)用程序在特定的配置下,會(huì)記錄下每個(gè)用戶的登錄信息(不只是當(dāng)前用戶,而是登錄過(guò)的所有用戶)
               2.在新用戶登錄的時(shí)候,會(huì)檢查1中記錄的所有用戶信息的狀態(tài)
            這樣就造成一個(gè)大問(wèn)題了,隨著用戶的不斷登錄登出,程序中積累的用戶信息越來(lái)越多,而如果這時(shí)候同時(shí)有大量用戶登錄,每次登陸的時(shí)候都去循環(huán)檢查所有用戶信息,這樣需要做的工作就巨大無(wú)比了。

            現(xiàn)在的改進(jìn)是:
               1.改每次用戶登錄檢查為每隔30秒循環(huán)檢查
               2.清理不需要的用戶信息,避免出現(xiàn)保存的用戶信息量過(guò)大。
               3.使用線程安全的map對(duì)象做數(shù)據(jù)保存

            結(jié)果:
               今日的用戶數(shù)量和前幾天差不多,高峰的時(shí)候也是平均并發(fā)3000多,一整天沒(méi)有出現(xiàn)任何問(wèn)題。基本確認(rèn)就是該問(wèn)題導(dǎo)致的。

            posted @ 2008-01-17 15:24 絕對(duì)在乎你 閱讀(386) | 評(píng)論 (0)編輯 收藏

            2008年1月15日

            挖蟲(chóng)日記 11.15

            先描述一下現(xiàn)象:
             環(huán)境:
                   一個(gè)機(jī)房,均衡后帶20臺(tái)服務(wù)器,并發(fā)峰值大概在7萬(wàn)不到一點(diǎn),平均下來(lái)一臺(tái)服務(wù)器3000多并發(fā)
            現(xiàn)象:
                  20臺(tái)服務(wù)器會(huì)隨機(jī)出現(xiàn)應(yīng)用服務(wù)器程序把cpu打滿的情況,而正常情況下,3000并發(fā)的時(shí)候,應(yīng)用服務(wù)器的cpu不超過(guò)10%,在cpu滿的情況下程序基本上停止提供服務(wù)器,只有重啟才能解決。
                 開(kāi)始的時(shí)候,20臺(tái)服務(wù)器的程序一模一樣,會(huì)隨機(jī)有部分服務(wù)器出現(xiàn)情況。
                 現(xiàn)在換了一半的服務(wù)器,測(cè)試新程序。

            昨天通過(guò)系統(tǒng)自帶的性能監(jiān)視器,將占用cpu的線程找出來(lái)了。在這部分線程池的處理過(guò)程中,有循環(huán)的地方都加了數(shù)量判斷,防止出現(xiàn)死循環(huán)。

            今天問(wèn)題仍然出現(xiàn),新的老的程序上都出現(xiàn)過(guò),出現(xiàn)的情況也不盡相同,有并發(fā)在1500左右,有3000左右。
            沒(méi)有出問(wèn)題的并發(fā)都在3000上下,所以單純說(shuō)是并發(fā)造成的,可能不準(zhǔn)確。最大的可能還是服務(wù)器遇到一個(gè)特殊的數(shù)據(jù)導(dǎo)致處理的錯(cuò)誤,但是還有一點(diǎn)比較奇怪的是,有線程繁忙的時(shí)候,很快就會(huì)有該線程池中的其他線程也繁忙起來(lái),難道異常數(shù)據(jù)出現(xiàn)的頻率在這個(gè)點(diǎn)上如此之高??
            今天下午的修改是:
               在單獨(dú)的一個(gè)線程中來(lái)監(jiān)視出現(xiàn)問(wèn)題的線程池中的線程的狀態(tài),如果發(fā)現(xiàn)對(duì)單個(gè)請(qǐng)求的處理時(shí)間過(guò)長(zhǎng),那么記錄下當(dāng)前線程中的狀態(tài),希望能抓到究竟是什么情況下導(dǎo)致的問(wèn)題?同時(shí)出現(xiàn)這種情況的時(shí)候,結(jié)束當(dāng)前線程,重啟一個(gè)線程放入線程池中,保證以下的工作正常處理。

               結(jié)果如何,明日再觀察!

            posted @ 2008-01-15 17:50 絕對(duì)在乎你 閱讀(429) | 評(píng)論 (0)編輯 收藏

            2008年1月6日

            結(jié)合htmlayout 實(shí)現(xiàn)新界面框架的目標(biāo)

            1.可以通過(guò)htmlayout能顯示html頁(yè)面。
            2.通過(guò)lua腳本控制html元素的行為。
            3.增加自定義的控件。

            posted @ 2008-01-06 23:39 絕對(duì)在乎你 閱讀(3500) | 評(píng)論 (4)編輯 收藏

            2007年12月27日

            給windows程序添加一個(gè)標(biāo)準(zhǔn)控制臺(tái)

            在程序初始化代碼里添加兩句
            AllocConsole(); //打開(kāi)控制臺(tái)窗口
            freopen("CON", "w", stdout);  //將標(biāo)準(zhǔn)輸出重定向到控制臺(tái)窗口上如果要接受用戶輸入的話把標(biāo)準(zhǔn)輸入也重定向一下。

            posted @ 2007-12-27 12:49 絕對(duì)在乎你 閱讀(754) | 評(píng)論 (0)編輯 收藏

            2007年12月23日

            GDI 中曲線的畫(huà)法

             
            在windows的GDI中,如果需要畫(huà)非常優(yōu)美的曲線,那么最適合用PolyBezier函數(shù),通過(guò)4個(gè)點(diǎn),
            起點(diǎn),起點(diǎn)控制點(diǎn)、終點(diǎn)控制點(diǎn)和終點(diǎn),可以得到一條非常漂亮的曲線,比自己去算弧度
            好多了。

            posted @ 2007-12-23 17:26 絕對(duì)在乎你 閱讀(919) | 評(píng)論 (0)編輯 收藏

            久久青青草视频| 久久WWW免费人成—看片| 久久久久亚洲AV无码去区首| 亚洲中文字幕无码久久综合网| 青青草国产成人久久91网| 99久久99久久| 久久国产精品成人免费| 国产精品久久精品| 麻豆精品久久精品色综合| 亚洲伊人久久大香线蕉苏妲己| 99久久人妻无码精品系列蜜桃| 国产精品久久久久天天影视| a高清免费毛片久久| 91精品免费久久久久久久久| 日韩精品国产自在久久现线拍| 99热热久久这里只有精品68| 久久精品无码一区二区三区免费 | 久久久久精品国产亚洲AV无码| 亚洲精品WWW久久久久久| 久久人人爽人人爽人人av东京热| 偷窥少妇久久久久久久久| 精品多毛少妇人妻AV免费久久 | 久久久国产99久久国产一| 久久久久久精品免费看SSS | 日本加勒比久久精品| 久久亚洲AV无码精品色午夜 | 天天久久狠狠色综合| 色婷婷噜噜久久国产精品12p | 久久精品无码一区二区WWW| 无码AV中文字幕久久专区| 久久精品9988| 久久亚洲国产最新网站| 国内精品伊人久久久久av一坑| 国内精品久久久久久不卡影院| 四虎影视久久久免费| 久久99精品久久久久久久不卡| 国产成人精品久久亚洲| 免费精品久久天干天干| 国产免费久久精品丫丫| 亚洲AV成人无码久久精品老人| 18岁日韩内射颜射午夜久久成人|