艾伟:ASP.NET 与 AJAX的实现方式

  Ajax 应该不是一项技术,是一种思想而已,跟 ASP.NET 以及其它 Web 开发语言没有什么太大关系,这里只是谈谈 ASP.NET 中目前使用的 Ajax 技术以及其它一些实现 Ajax 的优秀框架。

  Ajax 已经很流行一阵子了,现在谈 Ajax 觉得有点老土。目前所谓的 Web2.0 网站,基本上没有不使用 Ajax 的,就如使用 RSS 一样,就如同一个标签,贴上去就成了 2.0。Ajax 具体细节不谈,其目的就是让用户触发一些操作的时候,页面不会全部刷新,只刷新待更新的“部分页面”,加载数据的过程中,用 Loading 的图片来表示正在加载数据,不只是看起来挺不错,也提高了用户的访问体验,有一种酷酷的感觉。

  至于 ASP.NET 中用到的 Ajax ,我想大多数人使用的是 Ajax.net / AjaxProfessional 或者 ASP.NET 2.0 中带有的 Atlas 框架。因为都用过,我感觉这些都不是很好的 Ajax 解决方案。

  AjaxPro 用起来不是很方便,页面需要在 Page_Load 里面注册,类似于

以下是引用片段:
  private void Page_Load(object sender, System.EventArgs e)
  {
  AjaxPro.Utility.RegisterTypeForAjax(typeof(DataAccess.MyAjax));
  }

  而且 ASPX 页面要包含一个 Runat=Server 的 标记,这样 Ajax.net 会将用到的一些通用函数以及你自定义的函数加载进来,如果没有 其实也可以,手动添加就可以了。但是,在我以前做过的应用中,时常出现的一些问题,比如,经常发现浏览器状态栏会有 js 脚本错误,而此时你所做的 Ajax 效果会全部失效,解决办法就是,把那个 Ajax.dll /AjaxPro.dll 给重新覆盖一下就可以了,问题的原因究竟是什么,目前还不知道。 

  至于 Atlas,我对它的感觉其实就跟对 DataGrid 的感觉一样,嗯,这种控件的好用是好用,很方便,但是,真正做一些 Web 应用的时候,你不得不考虑到性能以及分层等各种问题。我想,在比较正式的 Web 应用中,没几个人去用 DataGrid 去显示一些数据吧,建议大家尽量少用这些控件。另外就是,Atlas 的执行效率确实不够理想,一直在那里 Loading,等了好长时间,竟然出现什么脚本错误,汗。

  那还有没有其它解决方案吗?你可以自己写些 Javascript 函数去实现。不过,我这里推荐用 jQuery 这个 Javascript 框架,从百度百科引用一段对其的介绍:

  jQuery 是继 prototype 之后又一个优秀的 Javascrīpt 框架。其宗旨是——WRITE LESS,DO MORE,写更少的代码,做更多的事情。

  它是轻量级的 js 库(压缩后只有21k) ,这是其它的 js 库所不及的,它兼容 CSS3,还兼容各种浏览器 (IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+)。

  jQuery 是一个快速的,简洁的 javaScript 库,使用户能更方便地处理 HTML documents、events、实现动画效果,并且方便地为网站提供 AJAX 交互。

  jQuery 还有一个比较大的优势是,它的文档说明很全,而且各种应用也说得很详细,同时还有许多成熟的插件可供选择。

  jQuery 能够使用户的 html 页保持代码和 html 内容分离,也就是说,不用再在 html 里面插入一堆js来调用命令了,只需定义 id 即可。

  看来这段介绍你会知道,Ajax 效果只是 jQuery 的众多功能的一种,一般来说,Web 应用中使用 Ajax,必然也离不开 Javascript,而 jQuery 正是为大家封装了一些 JS 函数,使得你不在被 JS 的纷繁复杂所担心,一切由 jQuery 帮你实现。

  看一个小例子,就知道用 jQuery 做 Ajax 实在是太方便了。

  比如某个 ASPX 或者 HTML 页面里面有个 Button,点击触发 Ajax 加载数据,显示到 里面。点击那个 Button 触发一个 JS 函数即可:

以下是引用片段:
  function GetNews()
  {
  $("#News").html("Loading News......");
  $.ajax({
  type:"post",
  url:"/ajax.aspx?act=getnews",
  dataType:"html",
  data:"",
  success:function(result)
  {
  $("#News").html(result);
  }
  });
  }

  这个函数就会先在那个 SPAN 里面显示“Loading News....”,通过异步调用,访问 /Ajax.aspx 这个页面,通过传递的 URL 参数 act=News 告诉页面需要什么类型的数据,你可以根据不同的参数,将数据通过 Ajax.aspx 直接 Write 到页面上,然后返回给上述 JS 函数,呈现到页面上,就这样简单搞定!

  当然,jQuery 里面并不是只有这一种 Ajax 效果实现方式,这里给出一些 jQuery 的资源,花上几个小时的时间学一下,很值得:

  jQuery 官网:http://jquery.com/

  jQuery 中文 API 文档: http://jquery.org.cn/visual/cn/index.xml

  jQeury 中文入门教程: http://www.k99k.com/jQuery_getting_started.html

  至于其它的 Javascript 优秀框架有很多了,比如 Yahoo! User Interface Library,Prototype,Rico,Qooxdoo,Dojo 等,另外还有 Ajax 方面一些资源可以参考一下这里收集的资源。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/548818.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IDEA中的模块被识别为普通文件夹,图标为灰色的

现象: 所有图标都是灰色,不被识别为模块 解决办法: 打开settings—> Build,Execution,deployment—>maven —>ignored Files —>然后把你出问题的项目勾掉就恢复正常了额,图标啥的都恢复了

艾伟:WCF从理论到实践(2):决战紫禁之巅

本系列文章导航WCF从理论到实践(1):揭开神秘面纱WCF从理论到实践(2):决战紫禁之巅WCF从理论到实践(3):八号当铺之黑色契约WCF从理论到实践(4):路在何方WCF从理论到实践(5):Binding细解WCF从理论到实践(6):W…

LeetCode——LCP 06.拿硬币

这个题简单到我觉得不用写思路&#xff0c;也没有啥坑。 class Solution {public int minCount(int[] coins) {int len coins.length;int count 0;for(int i0;i<len;i){countcoins[i]/2;if(coins[i]%20){continue;}else{count1;}}return count;} }

Linux 定时执行命令 crontab

语法介绍 使用权限 : root用户和crontab文件的所有者    crontab格式语法: crontab [-e [UserName]|-l [UserName]|-r [UserName]|-v [UserName]|File ]    说明 : crontab 是用来让使用者在固定时间或固定间隔执行程式之用&#xff0c;换句话说&#xff0c;也就是类似使用…

LeetCode——1710. 卡车上的最大单元数

力扣上提交的代码 class Solution {public int maximumUnits(int[][] boxTypes, int truckSize) {int res 0;//存储可以装载单元的最大总数//根据二维数组的第二列数据降序排列Arrays.sort(boxTypes,(o1, o2) -> o2[1]-o1[1]);for (int i 0; i<boxTypes.length &&…

黄聪:php中utf-8模板获取GB2312编码页面传递URL中文编码转换方法

$w中文参数; mb_convert_encoding($w, gb2312, utf-8)转载于:https://www.cnblogs.com/huangcong/archive/2011/09/03/2165339.html

狂神说JVM笔记

JVM探究 面试常见&#xff1a; 请你谈谈你对JVM的理解?java8虚拟机和之前的变化更新?什么是OOM&#xff0c;什么是栈溢出StackOverFlowError? 怎么分析?JVM的常用调优参数有哪些?内存快照如何抓取&#xff0c;怎么分析Dump文件&#xff1f;谈谈JVM中&#xff0c;类加载器…

敏捷开发与中医理论系列之二:古法教学(软件教育,松结对编程,师徒制度)...

由来 中国古代的很多技术或艺术&#xff0c;都是没有学校教授的&#xff0c;譬如中医&#xff0c;戏曲&#xff0c;民间艺术&#xff0c;食品&#xff0c;酿酒……但却不乏流传千古的名家和作品&#xff0c;唯一问题就是流传缓慢&#xff0c;传内不传外&#xff0c;传男不传女……

Xshell连接远程Linux服务器失败Could not connect to ‘192.xxx.xx.xxx‘ (port 22): Connection failed.

问题描述&#xff1a; 我将自己的一台Ubuntu系统笔记本作为服务器&#xff0c;然后使用另一台win10系统的Xshell去远程连接该服务器&#xff0c;始终不成功。 【备注】这个远程连接解决的是同一局域网中的远程&#xff0c;算不上真正的远程&#xff0c;在判断两者之间可否远程…

ajax 同步加载数据

var data $.ajax({url:"same.php",type:GET,async:false,cache:false}).responseText;主要是 async 参数

同局域网下的两台主机间互相ping不通是为什么

现象描述&#xff1a; 经过 ipconfig 命令&#xff08;Linux下 ifconfig 命令&#xff09;查询两台互相ping不通的主机的 ip 和网关&#xff0c;发现两台主机的路由网关都是192.168.0.1&#xff0c;但是他们之间互相ping不通&#xff0c;后面经过检查注意到&#xff0c;一台主…

HDU-3460 Ancient Printer 字典树

该题题意是求给定的字符串集用一个打字机来打出所有的字符串&#xff08;最后一个&#xff09;&#xff0c;顺序可以打乱&#xff0c;每次操作可以向打字机的末尾添加一个字符删除一个字符以及打印一个单词。这里有一个很强大的想法&#xff0c;那就是先假设每个单词都打印出来…

Linux下查看CPU个数(逻辑个数和物理个数)

CPU个数CPU颗数*CPU核数。 总逻辑CPU数 物理CPU个数 * 每颗物理CPU的核数 * 超线程数 //查询逻辑CPU总数 $ grep -c processor /proc/cpuinfo 4//查询物理CPU个数 $ cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l 1//查询每颗物理CPU的核数 $ cat /pr…

【博客话题】坚持的背影--记我的入门老师

光阴似箭&#xff0c;一晃十年过去了&#xff0c;人生中又会有几个十年呢&#xff1f;只是记忆中那黑板前奋笔疾书坚持的背影依然那么清晰的出现在眼前&#xff0c;时时提醒我要学会坚持永不放弃。在第27个教师节即将来临之际&#xff0c;谨以此文敬献给我的恩师和所有在教育战…

XShell远程连接LInux服务器(地址端口映射方法)

所实现的功能&#xff1a; 这篇文章主要是记录我在非同一局域网下用win10系统的Xshell去连接Linux系统服务器。 环境&#xff1a;一台win10主机&#xff0c;已安装好Xshell7&#xff0c;局域网ip:192.168.0.132 一台Linux主机&#xff0c;将其作为远程服务器使用&#xff0c;…

如何评价个人在软件开发团队中的绩效

我认为一个有效评价手段应该达到以下目的&#xff1a; 1、 对团队&#xff1a;让整个团队进入愉快高效工作状态 2、 对“高手”&#xff1a;奖励干活多干活好的人 3、 对“低手”&#xff1a;从制度上杜绝磨洋工的现象 4、 对“中手”&#xff1a;提供工作认真但是水平有待…

IDEA部署Tomcat报错[RMI TCP Connection(6)-127.0.0.1]

> 严重 [RMI TCP Connection(6)-127.0.0.1] > org.apache.catalina.core.StandardContext.startInternal One or more Filters failed to start. Full details will be found in the appropriate container log file该错误出现的原因是Tomcat初始化失败。 一定一定要检查…

如何对SQL Server中的XML数据进行insert、update、delete .

SQL Server 2005/2008增加了对XML数据的支持&#xff0c;同时也新增了几种操作XML的方法&#xff0c;本文主要以SQL Server 2008为例介绍如何对XML数据进行insert、update、delete。 SQL Server中新增加了XML.Modify()方法&#xff0c;分别为xml.modify(insert),xml.modify(del…

maven仓库理解、下载及设置

1、对maven仓库的理解&#xff1a; 可以看萨姆大叔的maven知识整理 2、下载apach maven Download 或者复制地址&#xff1a;http://maven.apache.org/download.cgi 3、IDEA中maven的setting 第六步是本地资料库的目录设置&#xff0c;如果你解压出来的maven安装包没有reposit…

XenDesktop 5.5 – HDX RealTime TCP UDP Audio演示

我们可以看到&#xff0c;XenDesktop 5.5相比于XenDesktop 4以及5在低带宽与高延迟的情况下&#xff0c;对声音回放的支持效果要更好。 在1.5Mbps,140ms延迟的情况下的情形。而XenDesktop 5.5能够在600ms延迟&#xff0c;0.5%丢包的情况下&#xff0c;使用TCP交付的情况下&…