• <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++的局限,讓編程語言大同
            隨筆 - 13, 文章 - 1, 評(píng)論 - 13, 引用 - 0
            數(shù)據(jù)加載中……

            2012年2月3日

            Htmlayout新Demo程序,簡單的多頁面瀏覽器

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

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

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

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

            2012年1月31日

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

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

            嵌入腳本方式

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

            元素引用方式

            在腳本中操作元素有以下幾種方式:
            1.最簡單的方式是直接給元素附上id屬性,這樣在腳本中就可以直接使用這個(gè)id名稱訪問對(duì)應(yīng)的元素了
            2.通過函數(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顯示無關(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ì)在乎你 閱讀(3232) | 評(píng)論 (1)編輯 收藏

            2012年1月30日

            htmlayout中嵌入lua腳本

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

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

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

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

            2010年6月3日

            sciTE使用收集

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

            posted @ 2010-06-03 23:04 絕對(duì)在乎你 閱讀(709) | 評(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);
                將通過create_new_object()創(chuàng)建的對(duì)加入到隊(duì)列中

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

               tlist:get_request();
               從請(qǐng)求隊(duì)列中取出一個(gè)請(qǐng)求來進(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ì)在乎你 閱讀(966) | 評(píng)論 (0)編輯 收藏

            2008年1月17日

            挖蟲日記 01.17

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

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

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

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

            2008年1月15日

            挖蟲日記 11.15

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

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

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

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

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

            2008年1月6日

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

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

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

            2007年12月27日

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

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

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

            2007年12月23日

            GDI 中曲線的畫法

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

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

            久久精品中文字幕第23页| 久久777国产线看观看精品| 久久精品无码av| 久久受www免费人成_看片中文| 99久久香蕉国产线看观香| 无码人妻久久久一区二区三区 | 久久w5ww成w人免费| 一本一道久久精品综合| 亚洲欧洲久久av| 国内精品久久久久影院免费| 久久国产精品免费| 国产三级久久久精品麻豆三级| 激情久久久久久久久久| 日日噜噜夜夜狠狠久久丁香五月| 亚洲一本综合久久| 日韩AV无码久久一区二区| 精品久久久久久无码中文字幕| 亚洲精品乱码久久久久久久久久久久 | 久久久亚洲欧洲日产国码二区| 精品午夜久久福利大片| 国产A级毛片久久久精品毛片| 中文字幕亚洲综合久久| 亚洲国产精品无码久久| 日韩电影久久久被窝网| 伊人久久精品线影院| 久久青青草原亚洲av无码app| 欧美麻豆久久久久久中文| 色综合久久久久网| 国产精品美女久久久久久2018| 久久免费国产精品| 久久99精品久久久久久水蜜桃 | 色综合久久最新中文字幕| 久久久久亚洲av无码专区| 伊人久久国产免费观看视频| 国产精品热久久无码av| 欧美综合天天夜夜久久| 国产美女久久久| 99久久国产综合精品成人影院| 成人免费网站久久久| 国产精品久久久久久吹潮| 久久99国产综合精品女同|