2017.12.15 HTML5好玩的东西、AppCan-浮动窗口、存储过程使用、Cookie/Session机制详解、DevExpress GridView使用技巧

第一组:杨昊 震惊!原来HTML5还有这些好玩的东西(UC震惊部)

如果需要在移动浏览器中实现拨打电话,调用sms发短信,发送email等功能,移动手机WEB页面(HTML5)Javascript提供的接口是一个好办法。

采用url href链接的方式,实现在Safari ios,Android 浏览器,webos浏览器,塞班浏览器,IE,Operamini等主流浏览器,进行拨打电话功能。

1. 拨打电话

在电话号码前面可以加上 + (加号)表示国际号码。如:

最常用WEB页面JS实现一键拨号的电话拨打功能

例子:

10086

使用wtai协议进行拨打电话

 10086
2. 发送短信

如果是需要调用短信的接口,可以将链接写成下面的格式:

sms:[,]*[?body=]

例如:

3. Mail 发送邮件

就和普通的html一样使用mailto

4. Android Market

如果希望一个链接能够激活Android市场的功能,可以把链接写成:

 Android Market link

其中就是搜索的内容,你应用的名称

例子:

MyApp
5. GPS地图定位

我的位置
例如:

我的位置

第二组:赵彩凤 AppCan-浮动窗口模块Frame

  1. appcan.frame.open(id,url,left,top,name,index,change,extraInfo) //打开一个浮动窗口
    id:要打开浮动窗口的名称
    url:浮动窗口要加载的页面的地址,如果url是一个数组则打开多页面浮动窗口
    left:浮动窗口距离左边的距离
    top:浮动窗口距离上边的距离
    name:强制改变打开窗口的名称
    index:设置选中的多页面窗口的默认索引
    change:如果多页面浮动窗口改变时会触发该回调,该回调有以下两个参数:err:正确返回情况下为null,错误时为Error信息.res:返回当前选择的浮动窗口页面的数据,

  2. appcan.frame.close(name) //关闭指定的浮动窗口
    //关闭demo浮动窗口 appcan.frame.close('demo');
    //另外一种使用方式 var frame = appcan.require('frame'); frame.close('demo');

  3. appcan.frame.resize(id,left,top,name) //设置指定的浮动窗口恢复到指定窗口的大小,并设置浮动窗口的位置

  4. appcan.frame.resizePopoverByEle(id,left,top,name) //设置指定的浮动窗口恢复到指定窗口的大小,并设置浮动窗口的位置

  5. appcan.frame.bringToFront(name) //把指定的浮动窗口设置为最上层
    //把demo窗口显示到所有窗口最上面
    appcan.frame.bringToFront('demo');
    //另外一种使用方式
    var frame = appcan.require('frame');
    frame.bringToFront('demo');

  6. appcan.frame.evaluateScript(name,popName,scriptContent) //在指定的浮动窗口内执行响应的脚本

//在demo窗口的浮动窗口执行脚本
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) //浮动窗口中页面切换

  2. appcan.frame.closeMulti(popName) //关闭多页面浮动窗口

  3. appcan.frame.selectMulti(popName,index) //设置多页面浮动窗口跳转到的子页面窗口的索引

  4. appcan.frame.sendToBack(name) //把指定的浮动窗口设置到最下层

  5. appcan.frame.setBounce(bounceType,startPullCall,downEndCall,upEndCall,color,imgSettings) //设置上下弹动效果

转自AppCan官网http://newdocx.appcan.cn/JSSDK/Frame


第三组:蔡永坚 存储过程-存储过程使用一

不缓存存储过程
  • 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
  • 调用
declare @exec_cur cursor;
declare @id int,
        @name varchar(20),
        @age int;
exec proc_cursor @cur = @exec_cur output;--调用存储过程
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;--删除游标
  • 存储过程、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
--
  • 分页存储过程
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;

第四组:张元一 Cookie/Session机制详解

1.2 Session机制

除了使用Cookie,Web应用程序中还经常使用Session来记录客户端状态。Session是服务器端使用的一种记录客户端状态的机制,使用上比Cookie简单一些,相应的也增加了服务器的存储压力。

1.2.1 什么是Session

Session是另一种记录客户状态的机制,不同的是Cookie保存在客户端浏览器中,而Session保存在服务器上。客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上。这就是Session。客户端浏览器再次访问时只需要从该Session中查找该客户的状态就可以了。

如果说Cookie机制是通过检查客户身上的“通行证”来确定客户身份的话,那么Session机制就是通过检查服务器上的“客户明细表”来确认客户身份。Session相当于程序在服务器上建立的一份客户档案,客户来访的时候只需要查询客户档案表就可以了。

1.2.3 Session的生命周期

Session保存在服务器端。为了获得更高的存取速度,服务器一般把Session放在内存里。每个用户都会有一个独立的Session。如果Session内容过于复杂,当大量客户访问服务器时可能会导致内存溢出。因此,Session里的信息应该尽量精简。

Session在用户第一次访问服务器的时候自动创建。需要注意只有访问JSP、Servlet等程序时才会创建Session,只访问HTML、IMAGE等静态资源并不会创建Session。如果尚未生成Session,也可以使用request.getSession(true)强制生成Session。

Session生成后,只要用户继续访问,服务器就会更新Session的最后访问时间,并维护该Session。用户每访问服务器一次,无论是否读写Session,服务器都认为该用户的Session“活跃(active)”了一次。

1.2.4 Session的有效期

由于会有越来越多的用户访问服务器,因此Session也会越来越多。为防止内存溢出,服务器会把长时间内没有活跃的Session从内存删除。这个时间就是Session的超时时间。如果超过了超时时间没访问过服务器,Session就自动失效了。

Session的超时时间为maxInactiveInterval属性,可以通过对应的getMaxInactiveInterval()获取,通过setMaxInactiveInterval(longinterval)修改。

Session的超时时间也可以在web.xml中修改。另外,通过调用Session的invalidate()方法可以使Session失效。


第五组:王炳钧 DevExpress GridView使用技巧之列标题点击事件

GridView有RowCellClick事件,即单元格点击事件,但是针对列标题行以及列标题单元格却没有相应的事件。

在这里使用GridView的MouseDown事件。这里同样使用的是GridHitInfo来获取点击位置的信息,来判断是否在列标题上。GridHitInfo根据鼠标点击的x、y坐标获取该点的相关信息,判断是否点击在列标题行内。

在这里使用GridView的MouseDown事件。这里同样使用的是GridHitInfo来获取点击位置的信息,来判断是否在列标题上。GridHitInfo根据鼠标点击的x、y坐标获取该点的相关信息,判断是否点击在列标题行内。

2017.12.15 HTML5好玩的东西、AppCan-浮动窗口、存储过程使用、Cookie/Session机制详解、DevExpress GridView使用技巧_第1张图片
image.png

以上代码很简单,但是有个小问题,就是在该列右边线拖动这一列的列宽时,也会弹出对话框,因为这里拖动列宽也被视为点击鼠标。这显然不合适。解决这个问题的办法也很简单,就是判断鼠标点击位置不在右边线向左移动一点距离(3像素)范围内。下面对以上代码稍加修改,就不会再有这个问题了。

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

你可能感兴趣的:(2017.12.15 HTML5好玩的东西、AppCan-浮动窗口、存储过程使用、Cookie/Session机制详解、DevExpress GridView使用技巧)