打造 高性能,轻量级的 webform框架---js直接调后台(第二天)
问题2: 每次与后台打交道 都需要写一些自己都看不太懂的事件,而且传参数很麻烦,这就是.net 封装的事件,如何解决呢?
首先不要以为写webfrom事件,都需要通过 服务器控件来绑定后台的事件,其实说白了绑定的事件其实都是form表单提交,而且还都是id为form1的表单提交。
如果你不知道这些,那么你为了调用前台的方法, 还要写onclientclick ,如果 美工做出来的效果的是 一个 div 或者 一个span ,滑动的时候,点击的时候,滚动的时候,都想与 后台进行交互,而且还要在 任务没有完成时实现进度条 ,完成后进度条消失,一般人的想法是使用 ajax,写过ajax的人都知道写ajax很麻烦,而且代码可读性,维护性,扩展性都不好,为什么我们可以自己写js 方法直接调用后台呢?
说了这么多废话,其实我想说的 ,我们需要 创造一个 js 的方法 goHouTai(方法名,参数), 然后直接就能执行后台代码,并且自动的将 参数传到后台,并且将直接执行后台的代码,请问有这种方法吗?,.net 不是自带的,但是我们可以自己写啊!!!!!
首先来看实现的思路,我们是否可以这样封装方法呢?
1.在页面放置 2个 隐藏控件,一个隐藏控件用来存方法名,一个隐藏控件用来存 参数 ,例如
<asp:HiddenField runat="server" ID="fangfa"/>
<asp:HiddenField runat="server" ID="canshu"/>
2.然后使用jquery 模拟表单提交 ,将方法名 ,参数放入隐藏控件中,然后执行表单提交,例如:
function submitForm(fangfa,canshu)
{
$("#fangfa").val(fangfa);
$("#canshu").val(canshu);
$("#form1").submit();
}
3. 后台在 Page_Load 中,根据传进来的参数名字不同就可以,执行后台的方法了,例如:
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
}
else
{
switch (fangfa.Value)
{
case "test":
test(canshu.Value);
break;
}
}
}
4.然后我们来调用我们的方法:
<input type="button" value="test" onclick="submitForm('test','aaaaaaa')"/>
测试下能否执行(测试通过)
注意事项: 我们需要将所有的 控件在 form1 的表单中
这样写我们基本就解决了 直接通过 js 传 方法名和参数就可以调用后台的方法,也达到了我们的目的!!
这样写 我们不就可以通过 传方法 和参数就可以执行执行后台代码了,如果细心的人会发现,这样写很麻烦,而且每个页面都要这样写,岂不是代码冗余 很严重,而且如果传入多个参数怎么办,岂不是要分割字符串,如何去优化 这里的代码,我会在下期中慢慢去分解 去消化!!!
打造 高性能,轻量级的 webform框架---js直接调后台(第二天)的更多相关文章
- 打造颠覆你想象中的高性能,轻量级的webform框架---js直接调后台的封装(第三天)
如果你没有看我第二天写的内容的,我想你是看不懂的!!!! 好了,废话不多说,怎么才能让我们的代码变得牛逼起来呢?怎么封装我们的代码呢?我们不可能 每个页面都需要那样写吧,那我们来一步一步来封装 我们的 ...
- 打造颠覆你想象中的高性能,轻量级的webform框架---无刷新提交后台并返回参数(第五天)
问题5: 使用aspx 页面执行后台方法,总是要刷新整个页面?我想提交后台不刷新页面,同时返回参数 执行前台的js 脚本,就是说类似于像 ajax 的效果一样,那我们该怎么做呢? 大家是否已经看了前 ...
- 打造颠覆你想象中的高性能,轻量级的webform框架-----如何替换webform的垃圾控件(第一天)
前文描述: 随着.net 推出 MVC框架以来,webform 与 mvc 的争论一直没有停止过,一直以来 mvc 的 拥护者远远高于 webform,但是webfrom的有些优势又是mvc而无法替 ...
- 又一个高性能轻量级的iOS模型框架YYModel
前言 iOS的模型框架其实有很多了,去年研究过Mantle,也了解过JSONModel.MJExtension,最近的项目项目优化的时候,再次考虑,基于轻量级.高性能的考虑,最终选择了YYModel. ...
- 使用Ratpack和Spring Boot打造高性能的JVM微服务应用
使用Ratpack和Spring Boot打造高性能的JVM微服务应用 这是我为InfoQ翻译的文章,原文地址:Build High Performance JVM Microservices wit ...
- 一个轻量级分布式RPC框架--NettyRpc
1.背景 最近在搜索Netty和Zookeeper方面的文章时,看到了这篇文章<轻量级分布式 RPC 框架>,作者用Zookeeper.Netty和Spring写了一个轻量级的分布式RPC ...
- [转]轻量级 Java Web 框架架构设计
工作闲暇之余,我想设计并开发一款轻量级 Java Web 框架,看看能否取代目前最为流行的而又越来越重的 Spring.Hibernate 等框架.请原谅在下的大胆行为与不自量力,本人不是为了重造轮子 ...
- 轻量级分布式RPC框架
随笔- 139 文章- 0 评论- 387 一个轻量级分布式RPC框架--NettyRpc 1.背景 最近在搜索Netty和Zookeeper方面的文章时,看到了这篇文章<轻量级分布式 ...
- Dapeng框架-开源高性能分布式微服务框架
我们公司性质是新零售,公司也有专门的框架组.这群大牛自己开发了一整套分布式微服务框架.我们也在使用这套框架,有很多心得体会. 该框架既Dapeng也!开源github地址:https://github ...
随机推荐
- web 直播&即时聊天------阿里云、融云(三)
经过前面的知识,基本已经把聊天室的功能搞定了,剩下的就是直播的问题了... 一如既往,阿里云的web demo也是少的可怜,只有一个web播放器(Prismplayer),所以这里主要就此播放器踩的坑 ...
- python socketserver监听多端口多进程
多进程监听多端口 # 多线程socket # 程序监听两个端口,端口逻辑相同其中一个端口放在子进程下 # 每次请求会在产生一个进程处理请求 import SocketServer from multi ...
- 使用JPA和Hibernate进行批量处理的最佳方式
Tips 原文作者:Vlad Mihalcea 原文地址:The best way to do batch processing with JPA and Hibernate 在本文中,你将了解什么是 ...
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(84)-Quartz 作业调度用法详解一
前言 我从Quartz2.0开始使用,并对其进行了封装了界面,可以参考 http://www.cnblogs.com/ymnets/p/5065154.html 最近拿出来进行了优化,并升级到最新版, ...
- word和.txt文件转html 及pdf文件, 使用poi jsoup itext心得
word和.txt文件转html 及pdf文件, 使用poi jsoup itext心得本人第一次写博客,有上面不足的或者需要改正的希望大家指出来,一起学习交流讨论.由于在项目中遇到了这一个问题,在 ...
- memcache基础
一.Memcache是一种缓存技术(内存),你可以把它想像成一张巨大的内存表,形式如下[它就是一个服务] key value key值(字符串) 可以放(字符串[二进制数据[视频.音频.图片]],数值 ...
- mybatis 查询 xml list参数
mybatis 查询 xml list参数: <select id="getByIds" resultType="string" parameterTyp ...
- 如何解决苹果Mac系统无法识别U盘
1.在Mac机上打开“磁盘工具”,将U盘重新分区, 2.格式选“exFAT”.该格式分区Win及Mac系统中都可以读和写,特别是可以支持大于4GB的大文件.但是一些高清播放机可能不支持. 3.以 ...
- php对数组中的键与值进行合并处理
$res=array(); $re=array_count_values($month); foreach( $re as $k=>$v){ $arr['month_name'] = strva ...
- 利用 Traceview 精准定位启动时间测试的异常方法 (工具开源)
机智的防爬虫标识原创博客地址:http://www.cnblogs.com/alexkn/p/7095855.html博客求关注: http://www.cnblogs.com/alexkn 1.启动 ...