前端dialog是什么(ligerUI中ligerDialog和ligerWindow的区别)

本文目录
ligerUI中ligerDialog和ligerWindow的区别
从API来看,它们之间视乎没有根本性的区别,下面看对比图,
我这里只列出了API文档中参数的对比图,两个类其他的API也与图中情况差不多,Dialog的API比较多,但几乎都涵盖了Window中的API
Window的API里面比Dialog多出了一样东西,那就是事件回调函数.
在 ligerWindow.js 中,我发现第46行,如下
l.controls.Window.ligerExtend(l.core.Win, {
同样我在 ligerDialog.js 中,104行,有同样的一句话,如下
l.controls.Dialog.ligerExtend(l.core.Win, {
这表示Dialog与Window是继承自同一个父类 l.core.Win,随后我查看了 js/core/base.js,在这个文件的770行我看到了 liger.core.Win 的真实面目.liger.core.Win 并没有做很多的事情,只实现遮罩功能和定义一些抽象接口.
最后我又重新回去阅读了 ligerDialog.js 的代码,从第 875 行开始一直到结束,这才是 Dialog 与 Window 最大的区别所在,Dialog 是单例对象,不建议在使用的时候继承与扩展,而 Window 是一个多例类,允许直接继承并扩展.
我拿出源码里面 5个 最基本的函数,来说明 Dialog 是单例类的事实:
$.ligerDialog.open = function (p)
{
// 实例化一个 l.controls.Dialog 对象
// 内部可以追述到第33行,使用 liger.run() 函数构造 Dialog 实例
return $.ligerDialog(p);
};
$.ligerDialog.close = function ()
{
// 根据 Dialog类型 查到到所有的 dialog 实例对象
var dialogs = l.find(l.controls.Dialog.prototype.__getType());
// 循环每一个 dialog实例并销毁
for (var i in dialogs)
{
var d = dialogs;
d.destroy.ligerDefer(d, 5);
}
// 隐藏遮罩层
// 在ligerUI中,所有的窗口使用的是一个全局的mask
// 相关代码可以看 js/core/base.js 598行
l.win.unmask();
};
$.ligerDialog.show = function (p)
{
var dialogs = l.find(l.controls.Dialog.prototype.__getType());
if (dialogs.length)
{
for (var i in dialogs)
{
// 如果已经存在 dialog实例,那么就直接使用实例对象
// 显示已存在的dialog,并返回
dialogs.show();
return;
}
}
// 如果不存在 dialog实例,则初始化一个实例并返回
return $.ligerDialog(p);
};
$.ligerDialog.hide = function ()
{
var dialogs = l.find(l.controls.Dialog.prototype.__getType());
// 隐藏dialog实例也是相同的方式
for (var i in dialogs)
{
var d = dialogs;
d.hide();
}
};
$.ligerDialog.tip = function (options)
{
// 初始化选项参数
options = $.extend({
showType: ’slide’,
width: 240,
modal: false,
height: 100
}, options || {});
$.extend(options, {
fixedType: ’se’,
type: ’none’,
isDrag: false,
isResize: false,
showMax: false,
showToggle: false,
showMin: false
});
// 构造一个Dialog实例
return $.ligerDialog.open(options);
};
根据上面的代码解读,结论就很清晰了:
Dialog是一个单例对象,不建议继承与扩展
Window是多例类,允许继承并扩展
我觉得ligerUI对Window的设计没有 Ext 设计得好,Dialog应作为Window的一个单例对象才相对合理,Ext就是这么做的.有兴趣的话,可以了解下Ext,Ext是目前我认为前端UI组件化设计得最好的一个框架.
sip中session和dialog是什么情况
1、essages(消息) 消息是在服务器和客户端之间交换的独立文本, 有两种类型的消息,分别是请求(Requests)和响应(Responses).
2、Transaction(事务) 事务发生于客户端和服务器端之间,包含从客户端发出请求给服务器,到服务器响应给客户端的最终消息(non-1xx message)之间的所有消息. 如果请求是一个"Invite"消息,并且最终的响应是一个non-2xx消息,那么该事务包含一个"Ack"响应消息.如果服务器的响应是一个2xx消息,那么,随后的ACK是一个单独的事务.
3、A sip transaction consists of a single request and any responses to that request, which includes zero or more provisional responses and one or more final responses.The branch parameter value in the VIA header is used to identify the transaction created by that request
4、Dialog(对话)对话是两个UAs(user agent) 之间持续一段时间的端到端(peer-to-peer)的SIP 关系. 一个对话由一个Call-ID, 一个local tag 和 一个remote tag来标识.对话过去也叫做 "call leg".dialog的建立是收到UAS的响应(To tag)时开始建立的。收到180响应时建立dialog叫做早期对话(early dialog),收到2XX的应答开始才是真正的dialog建立。
5、A dialog represents a peer-to-peer SIP relationship between two user agents that persists for some time, as a call-leg.It is identified at each UA with a dialog ID, which consists of a Call-ID, From tag and To tag. We can call a dialog is established when three values are all generated
dialog是什么程序
Dialog是VB中的一个控件,它的功能是弹出系统对话框,供用户选择。如:打开/保存文件,选择颜色等对话框。它的作用是:简洁快速,不必自己设计代码。
Dialog控件的添加方法是:选择“工程-部件...”,在弹出的窗口中选择“Microsoft Common Dialog Control 6.0 (SP6)”,并在左边打上勾,然后按“确定”按钮,这时工具箱内就多出了一个CommonDialog控件,双击此控件图标,你的设计窗口就加入了此控件。此控件的调用代码网上已有很多例子,故此略。请自行搜索,很方便的。

更多文章:
全球新冠肺炎疫情背景下航运发展(盐田港复苏日志:半年历劫从“低谷”到“爆仓” 疫情之后巨轮如何越洋航行)
2026年9月7日 17:10
matlab求解带字母参数方程组(我想matlab求一个关于x,y的方程组 ab c d f e h m n 都是参数)
2026年9月7日 16:30
oracle中的循环语句(下面哪个不是oracle程序设计中的循环语句 a for)
2026年9月7日 15:30
电脑里2个系统怎么删除一个(电脑开机显示有两个系统,如何删除一个)
2026年9月7日 12:20
scrollthrough意思(“scroll”是什么意思)
2026年9月7日 08:00
怎么激活keygen(注册机如何激活cad2008一个简单激活cad2008的方法)
2026年9月7日 06:30
vba编写excel插件(excel vba中能否动态创建控件)
2026年9月7日 04:40




