各种AJAX方法的使用比较

Posted by & filed under Uncategorized.

AJAX技术经过这么多年的发展,出现了一些框架或类库用于简化开发工作,不同的框架类库的使用方法也各不相同。 现在,再回头看看这些技术,看看这些框架类库,我们能感受到技术在不断地发展,AJAX开发越来越容易了。 本文收集了在ASP.NET平台上,一些具体代表性的AJAX开发方法,我将用实际的示例代码来演示如何使用它们, 让您感受AJAX的进化历程,同时也希望将一些优秀的AJAX开发方法介绍给您。 为了方便地介绍这些AJAX开发方法,我将它们划分为四代技术。 注意:按代划分AJAX技术纯属我个人的观点,只为了更好了区分它们。 此外,一些不借助任何框架类库的原始AJAX开发方法,本文将不讨论它们。 第一代技术:生成客户端代理脚本调用服务端 这类技术展示了第一代的AJAX框架的主要设计思想:在服务端为客户端生成代理脚本, Read more […]

值得收藏的十二条Jquery随身笔记(转)

Posted by & filed under Uncategorized.

1、关于页面元素的引用   通过jquery的$()引用元素包括通过id、class、元素名以及元素的层级关系及dom或者xpath条件等方法,且返回的对象为jquery对象(集合对象),不能直接调用dom定义的方法。   2、jQuery对象与dom对象的转换   只有jquery对象才能使用jquery定义的方法。注意dom对象和jquery对象是有区别的,调用方法时要注意操作的是dom对象还是jquery对象。   普通的dom对象一般可以通过$()转换成jquery对象。   如:$(document.getElementById(“msg”))则为jquery对象,可以使用jquery的方法。   由于jquery对象本身是一个集合。所以如果jquery对象要转换为dom对象则必须取出其中的某一项,一般可通过索引取出。   如:$(“#msg”)[0],$(“div”).eq(1)[0],$(“div”).get()[1],$(“td”)[5]这些都是dom对象,可以使用dom中的方法,但不能再使用Jquery的方法。   以下几种写法都是正确的:   $(“#msg”).html(); $(“#msg”)[0].innerHTML; $(“#msg”).eq(0)[0].innerHTML; $(“#msg”).get(0).innerHTML;   3、如何获取jQuery集合的某一项   对于获取的元素集合,获取其中的某一项(通过索引指定)可以使用eq或get(n)方法或者索引号获取,要注意,eq返回的是jquery对象,而get(n)和索引返回的是dom元素对象。对于jquery对象只能使用jquery的方法,而dom对象只能使用dom的方法,如要获取第三个<div>元素的内容。   有如下两种方法:   $(“div”).eq(2).html(); Read more […]

.NET中虚拟路径的问题(转)

Posted by & filed under Uncategorized.

今天部署产品时,发现一个涉及到路径错误的bug,在开发环境下都OK,但是到了测试环境中却一直报错,经过一番排查,原来错误出在了HttpContext.Current.Server.MapPath这个方法上,之前就一直对这个方法怎样将虚拟路径转化为物理路径不甚了了,今天我忍无可忍,在网上仔细查找了资料,还亲自做了实验,终于弄明白了。在此分享出来,希望能帮助到同样有困惑的人,少走弯路。 虚拟路径中的那些特殊字符的含义 Server.MapPath(“.”)返回当前执行文件所在路径 Server.MapPath(“..”)返回当前执行文件所在路径的父路径 Server.MapPath(“~”) 返回应用程序的所在路径 Server.MapPath(“/”),Server.MapPath(“\\”),Server.MapPath(@”\”) Read more […]

ASP.NET发送邮件

Posted by & filed under Uncategorized.

首先添加命名空间

使用不同的邮箱需要进行发送邮件的时候需要设置不同的服务器IP或者地址。

网络通信协议

Posted by & filed under Uncategorized.

网络通信协议:简单来说,就是在传输数据过程中的一种沟通的语言,一种约束。 比较常用的协议有:TCP/IP协议,UDP协议,FTP协议,HTTP协议等等。 TCP/IP协议(传输控制协议/网际协议):是目前最常用的一种通信协议。具有很强的灵活性,支持任意规模的网络,几乎可连接所有服务器和工作站。这种协议就像打电话一样,是一对一的,一台服务器链接一个客户端,连接上了才能发送消息,所以使用这种协议的时候我们都会先问服务器三个问题:①你活着没?我活着呢。②你现在忙不忙?不忙。③那我将要发送数据了啊?发吧。只有三个问题同时满足了才能开始发送数据。通俗的称这三个问题为TCP/IP的三次握手。这种协议可以确保数据的准确性和完整性。 下面写一个简单的TCP协议,看代码:

这是一个服务器端。下面看客户端的代码:

  这样两个看似简单的过程运行之后就基本可以实现QQ一样的简单对话了,比如:自动回复,比如随便说,都可以实现了。这是第一个版本,后面还会有更完整的版本。 UDP(User Read more […]

用SNMP协议实现系统监控(转)

Posted by & filed under Uncategorized.

系统监测的基本概念及分类: a.系统监测的概述: 如何对现有IT架构的整体以及细节运行情况进行科学、系统和高效地监测是目前各企业运维和管理部门一项非常重要的工作内容。随着当前企业IT环境中服务器、应用数量和类型的不断地增加,运维部门需要通过科学和高效的手段尽可能详细、实时和准确地获取整个架构中具体到每个服务器、每个系统甚至每个应用程序工作的细节,并且会对所获取到的原始数据进行分析、绘图和统计,以便为后续的性能调优、建构调整以及各类型排错建立参考依据。 常见的监测对象基本上涵盖了IT运行环境的方方面面,包括机房环境、硬件、网络等,而每一个方面所涉及的监测项目则种类繁多。例如对硬件环境的监测中,所涵盖内容就会包括服务器的工作温度、风扇转速等指标;针对系统环境的监测,将包括基本的操作系统运行环境,如CPU、内存、I/O、存储空间使用状况、网络吞吐量、进程数量和状态等情况;针对具体的应用情况,涉及监测的内容可能会更多,而且也会有很多专门针对应用的指标。 除了监测的内容需要尽量全面之外,同时我们还希望所使用的监测解决方案能够灵活和具备更多扩展功能。例如有效地支持IT架构的变化和扩展,在监测量增加的情况下能够尽可能少地占用资源,拥有强大的事件通知机制等等。 今天本文所涉及的内容,主要是针对操作系统以及软件环境的监测,而且尤其是针对Linux操作系统的运行情况监测。尽管目前有很多的商用软件以及解决方案来实现相关的功能,但是实际上我们也有很多开源的解决方案可以起到相同的作用,而且效果也非常不错。下面的内容中,我们将会对这些解决方案的实现方法进行详细描述。 b.基于Linux上系统监测的基本原理以及种类: 在Linux系统上的系统监测所采用的方式基本上有两种: 第一种,通过SNMP协议结合数据采集软件来实现: 这种方法所涉及的架构一般包括两部分,其中一部分是被监测服务器,另外一部分则是网管工作站。至于实现方法具体来说就是在Linux服务器上启动SNMP简单网络管理协议的进程snpmd来动态提供服务器在软件甚至硬件各方面的运行参数,这样服务器就成为了一个被监测的节点。然后在其他的网管工作站上的客户端软件应该具备两个功能:采集SNMP数据以及汇总统计信息。在绝大多数情况下,网管工作站上的监测软件都会基于Web页面方式提供系统运行状态图,而且涵盖了各种运行指标。同时新的状态信息能够动态更新到Web页面。 这种类型的监测所获得的数据格式标准而且全面,配置简单,所以从综合监测的角度看是一个不错的方案。 第二种,通过编写脚本调用系统状态监测的命令,并结合数据采集软件来实现: 在某些情况下SNMP协议的配置会相对比较麻烦,而且获取SNMP信息往往需要考虑选择不同的监测软件。从另外一个角度讲,其实Linux操作系统本身就提供了很多非常好用的状态获取工具,如sar(可实现多个指标的监测),iostat(专用于I/O使用率监测),vmstat(专用于cpu和内存使用情况监测)以及free命令等工具。这些工具都可以通过结合系统任务计划以及自编脚本进行周期性调用,这就给监测提供了相当的便利。因为可以将这些命令嵌入到脚本中以周期性生成系统监测软件所需要的数据,最终一样可以通过这些数据结合绘图软件绘制出直观的统计图。这种类型的监测所获得的信息更加灵活和精确,对于一些熟悉脚本编程的用户来说,使用起来更是得心应手。 另外采用这种方式的情况下,利用命令监测可以无限制扩展,用户可以通过各种管道来获得和定制自己的监测脚本。 所以综上所述,这两种监测方案各有优势。因此我们会在下文中针对两种方案各提供一些案例和操作方法由易到难分别进行说明和演示。 各种系统监测手段在企业中部署和实现方法: a.snmp协议的配置以及在Linux下和Windows上的测试方法: 首先我们来介绍一下第一种方法,即通过SNMP协议和数据采集软件来实现的系统运行监测方案。因为在相当多的情况下绝大多数企业都倾向于选择通过SNMP来获取服务器运行的各种信息,毕竟因为SNMP协议是业界实现监测的重要标准。 因此我们花点时间来介绍一下SNMP协议的基本概念以及工作原理。 简单网络管理协议SNMP是一种广泛用于监测网络设备(计算机、路由器)甚至其他设备(例如UPS)的网络协议,也是专门设计用于在IP网络管理网络节点(包括服务器、工作站、路由器、交换机及 Read more […]

[ASP.NET] Session 详解(转)

Posted by & filed under Uncategorized.

阅读本文章之前的准备 阅读本文章前,需要读者对以下知识有所了解。否则,阅读过程中会在相应的内容上遇到不同程度的问题。   懂得ASP/ASP.NET编程 了解ASP/ASP.NET的Session模型 了解ASP.NET Web应用程序模型 了解ASP.NET Web应用程序配置文件Web.config的作用、意义及使用方法 了解Internet Information Services(以下简称IIS)的基本使用方法 了解如何在Microsoft SQL Server中创建一个数据库。 Session模型简介  Session是什么呢?简单来说就是服务器给客户端的一个编号。当一台WWW服务器运行时,可能有若干个用户浏览正在运正在这台服务器上的网站。当每个用户首次与这台WWW服务器建立连接时,他就与这个服务器建立了一个Session,同时服务器会自动为其分配一个SessionID,用以标识这个用户的唯一身份。这个SessionID是由WWW服务器随机产生的一个由24个字符组成的字符串,我们会在下面的实验中见到它的实际样子。   这个唯一的SessionID是有很大的实际意义的。当一个用户提交了表单时,浏览器会将用户的SessionID自动附加在HTTP头信息中,(这是浏览器的自动功能,用户不会察觉到),当服务器处理完这个表单后,将结果返回给SessionID所对应的用户。试想,如果没有SessionID,当有两个用户同时进行注册时,服务器怎样才能知道到底是哪个用户提交了哪个表单呢。当然,SessionID还有很多其他的作用,我们会在后面提及到。   除了SessionID,在每个Session中还包含很多其他信息。但是对于编写ASP或ASP.NET的程序与来说,最有用的还是可以通过访问ASP/ASP.NET的内置Session对象,为每个用户存储各自的信息。例如我们想了解一下访问我们网站的用户浏览了几个页面,我们可能在用户可能访问到每个的页面中加入: <% If Read more […]

jQuery 插件机制(转)

Posted by & filed under Uncategorized.

jQuery提供了两个用于扩展jQuery功能的方法,即jQuery.fn.extend()和jQuery.extend()。 这两个方法都接受一个参数,类型为Object。Object对象的“名/值对”分别代表“函数或方法名/函数主体”。 前者用于扩展封装对象方法的插件”:

  后者用于扩展选择器插件以及封装全局函数插件: 选择器插件

封装全局函数插件

  jQuery.extend()方法除了可以扩展jQuery对象外,还有一个非常强大的功能,就是用于扩展已有的Object对象。 jQuery代码如下:

用一个或多个其他对象来扩展一个对象,然后返回被扩展的对象。

  结果: 正因为这一点,jQuery.extend()方法经常用于设置插件方法的一些列默认参数。

  Read more […]

C# byte数组与Image的相互转换(转)

Posted by & filed under Uncategorized.

功能需求: 1、把一张图片(png bmp jpeg bmp gif)转换为byte数组存放到数据库。 2、把从数据库读取的byte数组转换为Image对象,赋值给相应的控件显示。 3、从图片byte数组得到对应图片的格式,生成一张图片保存到磁盘上。 这里的Image是System.Drawing.Image。 以下三个函数分别实现了上述三个需求:

 

JS定时器实例解析

Posted by & filed under Uncategorized.

在javascritp中,有两个关于定时器的专用函数。 分别为: 1.倒计定时器:timename=setTimeout(“function();”,delaytime); 2.循环定时器:timename=setInterval(“function();”,delaytime); 第一个参数“function()”是定时器触发时要执行的动作,可以是一个函数,也可以是几个函数,函数间用“;”隔开即可。比如要弹出两个警告窗口,便可将“function();”换成 “alert(‘第一个警告窗口!’);alert(‘第二个警告窗口!’);”;而第二个参数“delaytime”则是间隔的时间,以毫秒为单位,即填写“5000”,就表示5秒钟。 倒计时定时器是在指定时间到达后触发事件,而循环定时器就是在间隔时间到来时反复触发事件,两者的区别在于:前者只是作用一次,而后者则不停地作用。 比如你打开一个页面后,想间隔几秒自动跳转到另一个页面,则你就需要采用倒计定时器“setTimeout(“function();”,delaytime)” Read more […]