2017.12.15 HTML5好玩的東西、AppCan-浮動(dòng)窗口姑子、存儲(chǔ)過程使用乎婿、Cookie/Session機(jī)制詳解、DevExpress GridView使用技巧

第一組:楊昊 震驚街佑!原來HTML5還有這些好玩的東西(UC震驚部)

如果需要在移動(dòng)瀏覽器中實(shí)現(xiàn)撥打電話谢翎,調(diào)用sms發(fā)短信,發(fā)送email等功能沐旨,移動(dòng)手機(jī)WEB頁面(HTML5)Javascript提供的接口是一個(gè)好辦法森逮。

采用url href鏈接的方式,實(shí)現(xiàn)在Safari ios磁携,Android 瀏覽器褒侧,webos瀏覽器,塞班瀏覽器,IE闷供,Operamini等主流瀏覽器烟央,進(jìn)行撥打電話功能。

1. 撥打電話

在電話號(hào)碼前面可以加上 + (加號(hào))表示國際號(hào)碼歪脏。如:

最常用WEB頁面JS實(shí)現(xiàn)一鍵撥號(hào)的電話撥打功能

例子:

<a href="tel:10086">10086</a>

使用wtai協(xié)議進(jìn)行撥打電話

 <a href="wtai://wp/mc;10086">10086</a>
2. 發(fā)送短信

如果是需要調(diào)用短信的接口疑俭,可以將鏈接寫成下面的格式:

sms:<phone_number>[,<phone-number>]*[?body=<message_body>]

例如:

  • 給 10086 發(fā)短信:
    <a href="sms:10086">發(fā)送信息</a>

  • 給 10086 發(fā)送內(nèi)容為"cxye"的短信:
    <a href="sms:10086?body=cxye">發(fā)送信息</a>

  • 給 10086 和 10010 發(fā)送內(nèi)容為"cxye"的短信:
    <a href="sms:10086,10010?body=cxye">發(fā)送信息</a>

3. Mail 發(fā)送郵件

就和普通的html一樣使用mailto

  • test1@163.com發(fā)送郵件:
    <a href="mailto:test1@163.com">mail</a>

  • test1@163.comtest2@126.com發(fā)送郵件:
    <a href="mailto:test1@163.com,test2@126.com">mail</a>

  • test1@163.com發(fā)送主題為“testing”的郵件:
    <a href="mailto:test1@163.com?subject=Testing">mail</a>

  • test1@163.com發(fā)送主題為“testing”的郵件,并抄送給test3@126.com
    <a href="mailto:test1@163.com?subject=Testing mailto&cc=test3@126.com">mail</a>

4. Android Market

如果希望一個(gè)鏈接能夠激活A(yù)ndroid市場(chǎng)的功能婿失,可以把鏈接寫成:

 <a href="market://search?q=[query]">Android Market link</a>

其中<query>就是搜索的內(nèi)容钞艇,你應(yīng)用的名稱

例子:

<a href="market://search?q=MyApp">MyApp</a>
5. GPS地圖定位

<a href="geopoint:[經(jīng)度],[緯度]">我的位置</a>
例如:

<a href="geopoint:108.954823,34.275891">我的位置</a>

第二組:趙彩鳳 AppCan-浮動(dòng)窗口模塊Frame

  1. appcan.frame.open(id,url,left,top,name,index,change,extraInfo) //打開一個(gè)浮動(dòng)窗口
    id:要打開浮動(dòng)窗口的名稱
    url:浮動(dòng)窗口要加載的頁面的地址,如果url是一個(gè)數(shù)組則打開多頁面浮動(dòng)窗口
    left:浮動(dòng)窗口距離左邊的距離
    top:浮動(dòng)窗口距離上邊的距離
    name:強(qiáng)制改變打開窗口的名稱
    index:設(shè)置選中的多頁面窗口的默認(rèn)索引
    change:如果多頁面浮動(dòng)窗口改變時(shí)會(huì)觸發(fā)該回調(diào),該回調(diào)有以下兩個(gè)參數(shù):err:正確返回情況下為null,錯(cuò)誤時(shí)為Error信息.res:返回當(dāng)前選擇的浮動(dòng)窗口頁面的數(shù)據(jù)豪硅,

  2. appcan.frame.close(name) //關(guān)閉指定的浮動(dòng)窗口
    //關(guān)閉demo浮動(dòng)窗口 appcan.frame.close('demo');
    //另外一種使用方式 var frame = appcan.require('frame'); frame.close('demo');

  3. appcan.frame.resize(id,left,top,name) //設(shè)置指定的浮動(dòng)窗口恢復(fù)到指定窗口的大小哩照,并設(shè)置浮動(dòng)窗口的位置

  4. appcan.frame.resizePopoverByEle(id,left,top,name) //設(shè)置指定的浮動(dòng)窗口恢復(fù)到指定窗口的大小,并設(shè)置浮動(dòng)窗口的位置

  5. appcan.frame.bringToFront(name) //把指定的浮動(dòng)窗口設(shè)置為最上層
    //把demo窗口顯示到所有窗口最上面
    appcan.frame.bringToFront('demo');
    //另外一種使用方式
    var frame = appcan.require('frame');
    frame.bringToFront('demo');

  6. appcan.frame.evaluateScript(name,popName,scriptContent) //在指定的浮動(dòng)窗口內(nèi)執(zhí)行響應(yīng)的腳本

//在demo窗口的浮動(dòng)窗口執(zhí)行腳本
appcan.frame.evaluateScript({
    name:'demo',
    popName:'demoPop',  
    scriptContent:'alert("hello world")'
});
//另外一種使用方式
var frame = appcan.require('frame');
frame.evaluateScript({
    name:'demo',
    popName:'demoPop',
    scriptContent:'alert("hello world")'
});
  1. appcan.frame.openMulti(popName,content,dataType,left,top,width,height,fontSize,flag,indexSelected) //浮動(dòng)窗口中頁面切換

  2. appcan.frame.closeMulti(popName) //關(guān)閉多頁面浮動(dòng)窗口

  3. appcan.frame.selectMulti(popName,index) //設(shè)置多頁面浮動(dòng)窗口跳轉(zhuǎn)到的子頁面窗口的索引

  4. appcan.frame.sendToBack(name) //把指定的浮動(dòng)窗口設(shè)置到最下層

  5. appcan.frame.setBounce(bounceType,startPullCall,downEndCall,upEndCall,color,imgSettings) //設(shè)置上下彈動(dòng)效果

轉(zhuǎn)自AppCan官網(wǎng)http://newdocx.appcan.cn/JSSDK/Frame


第三組:蔡永堅(jiān) 存儲(chǔ)過程-存儲(chǔ)過程使用一

不緩存存儲(chǔ)過程
  • WITH RECOMPILE 不緩存
if (object_id('proc_temp', 'P') is not null)
    drop proc proc_temp
go
create proc proc_temp
with recompile
as
    select * from student;
go

exec proc_temp;
  • 加密WITH ENCRYPTION
if (object_id('proc_temp_encryption', 'P') is not null)
    drop proc proc_temp_encryption
go
create proc proc_temp_encryption
with encryption
as
    select * from student;
go

exec proc_temp_encryption;
exec sp_helptext 'proc_temp';
exec sp_helptext 'proc_temp_encryption';
if (object_id('proc_cursor', 'P') is not null)
    drop proc proc_cursor
go
create proc proc_cursor
    @cur cursor varying output
as
    set @cur = cursor forward_only static for
    select id, name, age from student;
    open @cur;
go
  • 調(diào)用
declare @exec_cur cursor;
declare @id int,
        @name varchar(20),
        @age int;
exec proc_cursor @cur = @exec_cur output;--調(diào)用存儲(chǔ)過程
fetch next from @exec_cur into @id, @name, @age;
while (@@fetch_status = 0)
begin
    fetch next from @exec_cur into @id, @name, @age;
    print 'id: ' + convert(varchar, @id) + ', name: ' + @name + ', age: ' + convert(char, @age);
end
close @exec_cur;
deallocate @exec_cur;--刪除游標(biāo)
  • 存儲(chǔ)過程舟误、row_number完成分頁
if (object_id('pro_page', 'P') is not null)
    drop proc proc_cursor
go
create proc pro_page
    @startIndex int,
    @endIndex int
as
    select count(*) from product
;    
    select * from (
        select row_number() over(order by pid) as rowId, * from product 
    ) temp
    where temp.rowId between @startIndex and @endIndex
go
--drop proc pro_page
exec pro_page 1, 4
--
  • 分頁存儲(chǔ)過程
if (object_id('pro_page', 'P') is not null)
    drop proc pro_stu
go
create procedure pro_stu(
    @pageIndex int,
    @pageSize int
)
as
    declare @startRow int, @endRow int
    set @startRow = (@pageIndex - 1) * @pageSize +1
    set @endRow = @startRow + @pageSize -1
    select * from (
        select *, row_number() over (order by id asc) as number from student 
    ) t
    where t.number between @startRow and @endRow;

exec pro_stu 2, 2;

第四組:張?jiān)? Cookie/Session機(jī)制詳解

1.2 Session機(jī)制

除了使用Cookie葡秒,Web應(yīng)用程序中還經(jīng)常使用Session來記錄客戶端狀態(tài)。Session是服務(wù)器端使用的一種記錄客戶端狀態(tài)的機(jī)制嵌溢,使用上比Cookie簡(jiǎn)單一些,相應(yīng)的也增加了服務(wù)器的存儲(chǔ)壓力蹋岩。

1.2.1 什么是Session

Session是另一種記錄客戶狀態(tài)的機(jī)制赖草,不同的是Cookie保存在客戶端瀏覽器中,而Session保存在服務(wù)器上剪个⊙砥铮客戶端瀏覽器訪問服務(wù)器的時(shí)候,服務(wù)器把客戶端信息以某種形式記錄在服務(wù)器上扣囊。這就是Session乎折。客戶端瀏覽器再次訪問時(shí)只需要從該Session中查找該客戶的狀態(tài)就可以了侵歇。

如果說Cookie機(jī)制是通過檢查客戶身上的“通行證”來確定客戶身份的話骂澄,那么Session機(jī)制就是通過檢查服務(wù)器上的“客戶明細(xì)表”來確認(rèn)客戶身份。Session相當(dāng)于程序在服務(wù)器上建立的一份客戶檔案惕虑,客戶來訪的時(shí)候只需要查詢客戶檔案表就可以了坟冲。

1.2.3 Session的生命周期

Session保存在服務(wù)器端。為了獲得更高的存取速度溃蔫,服務(wù)器一般把Session放在內(nèi)存里健提。每個(gè)用戶都會(huì)有一個(gè)獨(dú)立的Session。如果Session內(nèi)容過于復(fù)雜伟叛,當(dāng)大量客戶訪問服務(wù)器時(shí)可能會(huì)導(dǎo)致內(nèi)存溢出私痹。因此,Session里的信息應(yīng)該盡量精簡(jiǎn)。

Session在用戶第一次訪問服務(wù)器的時(shí)候自動(dòng)創(chuàng)建紊遵。需要注意只有訪問JSP账千、Servlet等程序時(shí)才會(huì)創(chuàng)建Session,只訪問HTML癞蚕、IMAGE等靜態(tài)資源并不會(huì)創(chuàng)建Session蕊爵。如果尚未生成Session,也可以使用request.getSession(true)強(qiáng)制生成Session桦山。

Session生成后攒射,只要用戶繼續(xù)訪問,服務(wù)器就會(huì)更新Session的最后訪問時(shí)間恒水,并維護(hù)該Session会放。用戶每訪問服務(wù)器一次,無論是否讀寫Session钉凌,服務(wù)器都認(rèn)為該用戶的Session“活躍(active)”了一次咧最。

1.2.4 Session的有效期

由于會(huì)有越來越多的用戶訪問服務(wù)器,因此Session也會(huì)越來越多御雕。為防止內(nèi)存溢出矢沿,服務(wù)器會(huì)把長(zhǎng)時(shí)間內(nèi)沒有活躍的Session從內(nèi)存刪除。這個(gè)時(shí)間就是Session的超時(shí)時(shí)間酸纲。如果超過了超時(shí)時(shí)間沒訪問過服務(wù)器捣鲸,Session就自動(dòng)失效了。

Session的超時(shí)時(shí)間為maxInactiveInterval屬性闽坡,可以通過對(duì)應(yīng)的getMaxInactiveInterval()獲取栽惶,通過setMaxInactiveInterval(longinterval)修改。

Session的超時(shí)時(shí)間也可以在web.xml中修改疾嗅。另外外厂,通過調(diào)用Session的invalidate()方法可以使Session失效。


第五組:王炳鈞 DevExpress GridView使用技巧之列標(biāo)題點(diǎn)擊事件

GridView有RowCellClick事件代承,即單元格點(diǎn)擊事件汁蝶,但是針對(duì)列標(biāo)題行以及列標(biāo)題單元格卻沒有相應(yīng)的事件。

在這里使用GridView的MouseDown事件次泽。這里同樣使用的是GridHitInfo來獲取點(diǎn)擊位置的信息穿仪,來判斷是否在列標(biāo)題上。GridHitInfo根據(jù)鼠標(biāo)點(diǎn)擊的x意荤、y坐標(biāo)獲取該點(diǎn)的相關(guān)信息啊片,判斷是否點(diǎn)擊在列標(biāo)題行內(nèi)。

在這里使用GridView的MouseDown事件玖像。這里同樣使用的是GridHitInfo來獲取點(diǎn)擊位置的信息紫谷,來判斷是否在列標(biāo)題上齐饮。GridHitInfo根據(jù)鼠標(biāo)點(diǎn)擊的x、y坐標(biāo)獲取該點(diǎn)的相關(guān)信息笤昨,判斷是否點(diǎn)擊在列標(biāo)題行內(nèi)祖驱。

image.png

以上代碼很簡(jiǎn)單,但是有個(gè)小問題瞒窒,就是在該列右邊線拖動(dòng)這一列的列寬時(shí)捺僻,也會(huì)彈出對(duì)話框,因?yàn)檫@里拖動(dòng)列寬也被視為點(diǎn)擊鼠標(biāo)崇裁。這顯然不合適匕坯。解決這個(gè)問題的辦法也很簡(jiǎn)單,就是判斷鼠標(biāo)點(diǎn)擊位置不在右邊線向左移動(dòng)一點(diǎn)距離(3像素)范圍內(nèi)拔稳。下面對(duì)以上代碼稍加修改葛峻,就不會(huì)再有這個(gè)問題了。

https://www.evget.com/article/2012/10/11/17700.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末巴比,一起剝皮案震驚了整個(gè)濱河市术奖,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌轻绞,老刑警劉巖采记,帶你破解...
    沈念sama閱讀 218,607評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異政勃,居然都是意外死亡挺庞,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門稼病,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人掖鱼,你說我怎么就攤上這事然走。” “怎么了戏挡?”我有些...
    開封第一講書人閱讀 164,960評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵芍瑞,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我褐墅,道長(zhǎng)拆檬,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,750評(píng)論 1 294
  • 正文 為了忘掉前任妥凳,我火速辦了婚禮竟贯,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘逝钥。我一直安慰自己屑那,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,764評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著持际,像睡著了一般沃琅。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蜘欲,一...
    開封第一講書人閱讀 51,604評(píng)論 1 305
  • 那天益眉,我揣著相機(jī)與錄音,去河邊找鬼姥份。 笑死郭脂,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的殿衰。 我是一名探鬼主播朱庆,決...
    沈念sama閱讀 40,347評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼闷祥!你這毒婦竟也來了娱颊?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,253評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤凯砍,失蹤者是張志新(化名)和其女友劉穎箱硕,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體悟衩,經(jīng)...
    沈念sama閱讀 45,702評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡剧罩,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,893評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了座泳。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片惠昔。...
    茶點(diǎn)故事閱讀 40,015評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖挑势,靈堂內(nèi)的尸體忽然破棺而出镇防,到底是詐尸還是另有隱情,我是刑警寧澤潮饱,帶...
    沈念sama閱讀 35,734評(píng)論 5 346
  • 正文 年R本政府宣布来氧,位于F島的核電站,受9級(jí)特大地震影響香拉,放射性物質(zhì)發(fā)生泄漏啦扬。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,352評(píng)論 3 330
  • 文/蒙蒙 一凫碌、第九天 我趴在偏房一處隱蔽的房頂上張望扑毡。 院中可真熱鬧,春花似錦证鸥、人聲如沸僚楞。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,934評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽泉褐。三九已至赐写,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間膜赃,已是汗流浹背挺邀。 一陣腳步聲響...
    開封第一講書人閱讀 33,052評(píng)論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留跳座,地道東北人端铛。 一個(gè)月前我還...
    沈念sama閱讀 48,216評(píng)論 3 371
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像疲眷,于是被迫代替她去往敵國和親禾蚕。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,969評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理狂丝,服務(wù)發(fā)現(xiàn)换淆,斷路器,智...
    卡卡羅2017閱讀 134,657評(píng)論 18 139
  • 轉(zhuǎn)自:http://justsee.iteye.com/blog/1570652 雖然session機(jī)制在web應(yīng)...
    Maggie編程去閱讀 479評(píng)論 0 6
  • 一几颜、概念(載錄于:http://www.cnblogs.com/EricaMIN1987_IT/p/3837436...
    yuantao123434閱讀 8,356評(píng)論 6 152
  • 1. cookie 1.1 什么是cookie cookie 是存儲(chǔ)于訪問者的計(jì)算機(jī)中的變量倍试。每當(dāng)同一臺(tái)計(jì)算機(jī)通過...
    cbw100閱讀 4,060評(píng)論 0 13
  • Session機(jī)制 除了使用Cookie,Web應(yīng)用程序中還經(jīng)常使用Session來記錄客戶端狀態(tài)蛋哭。Session...
    薛晨閱讀 6,958評(píng)論 4 34