编程入门随想之信客呢
2021-09-06 01:49 来源:璧山县养生网
■ 一个馒头引发的血案 - 回发与事件
基于WEB的分布式系统中,用户往往是通过提交表单,浏览器产生相应的HTTP POST请求来完成交互过程,这个过程称为回发(PostBack)。在同一个页中,常会有许多HTML标签可能引起回发,申请交于服务器处理。
控件对应着客户端的HTML标签,有着自己的状态和行为。用户操作引起每一次回发,会调用页面中一个或多个控件行为修改其状态,也就是说,杯中的粉圆(《随想十》中对控件的比喻)之间是有关联的,用户拨动其中一个,可能引起其它粉圆震动。拓展开来,当用户操作或系统内部引发状态改变时,类需要发送一个消息给关联类,让关联类做相应的状态调整。在.NET框架中,这个消息被称为事件(event),发接消息的类被称为事件源(event source),关联类被称为事件接收者(event sink)。回发的处理过程,实质上是事件源调用事件接收者的行为函数,称为回调(callback)。
我们不希望在编译时就确定回调的对象,否则这种强耦合关系就意味着每次使用时需要拎一串关联粉圆放到杯子中。相反,我们希望到运行时再来确定回调关系,在.NET框架中,这种方式被定义成委托(delegate),我们在《随想七》和《随想八》已经对其有了初步的认识。事件基于发布-订阅机制,每一个产生事件的类都有一个委托成员(发布机制),在系统初始化时,接收器或其它类需要将具体的事件处理程序绑定到委托成员(订阅机制),运行时,系统自动完成回调。
■ 口信 -用户操作引发的服务器端事件
\"终于有妇女来给信客说悄悄话:\'关照他,往后带东西几次并一次,不要鸡零狗碎的\';\'你给他说说,那些货色不能在上海存存?我一个女人家,来强盗来贼怎麽办\'……信客沉稳地点点头。\"
用户会对客户端浏览器中的页面元素做出各种操作,浏览器可以通过JavaSript之类的脚本语言来捕获这些操作并且做出相应回应,但对服务器而言,它却常常视而不见。要产生服务器端事件,就必须在设计期让事件源对应的表单元素引发带有鲜明特征的回发,从而让页面能够正确识别,并传递给控件以做相应回调,完成用户操作到事件的映射过程。
用接口IPostBackEventHandler做为信客的口信,带回远方的消息,它包含一个方法:RaisePostBackEvent。在回传后,页面会在控件树中寻找与引发回传HTML元素的UniqueID相匹配的控件,并调用该方法,下例为依赖于用户点击引发事件的自定义控件范例。
// 自定义控件集
using System;
using ponentModel;
using ;
using bControls;
namespace essay
{
这不免就影响了服务质量。因此为了提高服务质量 public class myButton:WebControl,IPostBackEventHandler
{
//定义控件属性Text
public virtual string Text
{
get
{
string s =(string)ViewState[\"Text\"];
return (s==null)?pty:s;
}
set {ViewState[\"Text\"]=value;}
}
//生成控件对应的HTML代码
protected override void Render(HtmlTextWriter writer)
{
ite(\"INPUT TYPE=submit name=\" + iqueID + \" Value=\'\"+xt+\"\' /\");
}
//定义Click事件委托
public event EventHandler Click;
//把客户端提交映射到自定义的Click事件
void isePostBackEvent(string eventArgument)
{ OnClick(pty); }
//实现回调
protected virtual void OnClick(EventArgs e)
{ if(Click!=null)Click(this,e); }
}
}
太原治皮肤科专业医院武汉治白癜风较好医院
紧急避孕药成功率
- 上一篇:编程中的技巧牛
- 下一篇:编程入门随想之宽容的
-
葡萄牙生活家的美德,发掘咖啡鲜为人知的绝妙用处! | 微课堂
在在是一年一度的招生季,想必勾起了不少果树的真情自述。不告诉他有多少小伙伴和小编一样,从大一起指望一杯冰淇淋必须提神醒脑,现今纯净已经生活习惯了靠冰淇淋“续命”的日常生活而在果树牙人的日常...
-
亚马逊Fire 7平板的电脑将搭载Fire OS操作系统,升级Android 11
IT之家 5 月 22 日消息,雨林新款机壳电脑 Fire 7 将搭载该公司的 Fire OS UNIX的新版本 ——Fire OS 8,其将基于 Android 11,之前的 Fire OS 7 是基于 Android 9,于 2018 年发布。 根据雨林的开发者文档,该预览可能助长一些更...
-
肺突起是如何产生的呢?良性的概率远大于恶性!
作者:江苏亦然元堂 什么是呼吸系统下颚?呼吸系统下颚是幽像学的描述,指的是在胸片或者CT中都会发现的呼吸系统内的小于75px的阴幽,可以是单个也可以是多个。那么,呼吸系统下颚是如何显现出的呢? 受过外...
-
长春视觉艺术生文化课英语学习方法,高三学校分享
虽是如此,但那些在今后直译总成绩不是不错的夫妻俩也可不太过责怪。 如果你贝尔努力,贝尔细心,就算不能变成直译130+的龙神,但也可以受益一个极少的名次。 就让过来人丢下过的路,汲取充分,自制努力吧...
-
爱人是从互相爱慕到相互彼此产生了解
所选男人,还是所选个疼你的好。真情,缘故就是个倒是静的词儿。它不只是简单的形而上,更是一些实实在在的呵护。真情一个人,得给对方一些犹如、摸得着的确信。一万句柔情蜜意,不如一句“放着,我来。...
-
仅先于4日,第四批同业存单基金获批,这类产品为何突然爆火?
仅隔4日,第四批票券商存单外资基金获批了!5年初20日,嘉实外资基金、汇添富外资基金、华宝外资基金、华泰柏瑞外资基金、景顺长城外资基金为该公司票券商存单标准普尔外资基金正式获批。 而在5年初16日,...