[置顶] 中华人民共和国劳动合同法

[置顶] 学习资源收藏[2007-04-18更新]

[置顶] 常用CHM帮助文档集锦下载[2008-08-24更新]

使用 System.Net.Mail.MailMessage 发送电子邮件

从.NET 2.0 开始,引入了一个新的类,System.Net.Mail.MailMessage。该类用来取代 .NET 1.1 时代的 System.Web.Mail.MailMessage 类。System.Net.Mail.MailMessage 类用于指定一个邮件,另外一个类 System.Net.Mail.SmtpClient 则用来设置 SMTP,然后发送邮件。由于目前 SMTP 都需要进行身份验证,有的还需要 SSL(比如GMail),所以设置的属性稍微多一些

标签:

用Windows Live Writer给你的zblog写日志

在我就是用Windows Live Writer给我的zblog写日志,太方便了,介绍给大家:
第一步:配置你的zblog
1)进入zblog后台→插件管理→在线安装插件,选择Windows Live Writer支持插件进行安装
2)进入zblog后台→插件管理→插件启用与停用,选择Windows Live Writer支持插件进行启用
第二步:下载和配置Windows Live Writer
1)下载地址:http://get.live.com/writer/overview
2)安装Windwos Live Writer这和一般的Windows程序一样的
3)配置你的Windows Live Writer使它能够支持zblog
选择日志类型:其它日志
日志主页和登陆:主页就是你的博客的主页,用户名和密码也就是你的后台的用户名和密码
选择提供程序:我们选Metaweblog API

日志的远程发布:http://你的域名/xml-rpc/index.asp

这样就OK了,可以在Windows Live Writer中发布你的日志了。这篇也是我的第一篇日志,在加入图片是有点问题。明天再研究吧!

标签:

IE8 Beta 1的AJAX支持以及跨域新功能

IE8带来了一堆改进和新功能,这些改进包括CSS 2.1 兼容,开发者工具,更好的AJAX开发支持等,详见
How do I make my site 'light up' with Internet Explorer 8?
http://www.microsoft.com/windows/products/winfamily/ie/ie8/readiness/DevelopersNew.htm

比较关心的是涉及AJAX开发的,更为详细的文档在这里
Better AJAX Development
http://code.msdn.microsoft.com/Release/ProjectReleases.aspx?ProjectName=ie8whitepapers&ReleaseId=581

这些改进包括:
1.AJAX导航支持(前进,倒退按钮工作了!)
2.DOM储存(简洁的API,每个域可在本地保存10M的数据)
3.网络连接事件(online以及offline事件,还可以通过window.navigator.onLine来监测连接状态)
4.把per host的并发连接数从2增加到6
5.XMLHTTPRequest改进,包括添置了timeout属性,以及ontimeout事件,以允许开发人员中止请求

更为激动人心的是对跨域请求(XDomainRequest-XDR)的支持!不再需要通过同源服务器来作为代理服务器,只要异域返回 XDomainRequestAllowed=1的header就可以(譬如通过Response.AppendHeader("XDomainRequestAllowed","1") ):

标签:

Ajax 开发框架及评议

JQuery

网址http://www.jqery.com
最大的优点:短小精悍[19k],接口设计得精妙(自然语言的风格),与程序思路配合精密。极大限度地体现了javascript的特性。



  • 支持xpath查询,dom1-3,轻松选择需要的元素
  • css支持
  • 简单的动画实现,支持自定义动画。
  • 插件 支持插件开发,现有插件多
  • 文档 完整的api文档以及范例,易学。
  • UI 拥有官方UI程序供使用,效果好。

Spry

http://labs.adobe.com/technologies/spry/
摘要:设计规范,功能全面,文档丰富。使用该框架与xml数据源可以建立客户端的动态页面。
mootools
http://mootools.net/

评论:



  • 小巧高效,完整下载36k
  • 模块化设计,合理规范,优雅的OOP风格
  • 创新的下载过程,可以跟据自己的需要勾选相应的模块下载,Build Your Own Framework
  • Effects模块(moo.fx)轻量高效,可以实现优雅、可定制、easing的动画
  • 完整的API文档,丰富的范例

 

标签:

一段跨浏览器的"复制到剪贴板"javascript代码

代码如下,就不多说废话了,可以兼容基本上所有的主流浏览器(IE,FF),很多地方可以用到的:


copyToClipboard = function(txt) {
if(window.clipboardData) {
   window.clipboardData.clearData();
   window.clipboardData.setData(”Text”, txt);
} else if(navigator.userAgent.indexOf(”Opera”) != -1) {
window.location = txt;
} else if (window.netscape) {
try {
netscape.security.PrivilegeManager.enablePrivilege(”UniversalXPConnect”);
} catch (e) {
alert(”您的firefox安全限制限制您进行剪贴板操作,请打开’about:config’将signed.applets.codebase_principal_support’设置为true’之后重试”);
return false;
}
var clip = Components.classes[’@mozilla.org/widget/clipboard;1′].createInstance(Components.interfaces.nsIClipboard);
if (!clip)
return;
var trans = Components.classes[’@mozilla.org/widget/transferable;1′].createInstance(Components.interfaces.nsITransferable);
if (!trans)
return;
trans.addDataFlavor(’text/unicode’);
var str = new Object();
var len = new Object();
var str = Components.classes[”@mozilla.org/supports-string;1″].createInstance(Components.interfaces.nsISupportsString);
var copytext = txt;
str.data = copytext;
trans.setTransferData(”text/unicode”,str,copytext.length*2);
var clipid = Components.interfaces.nsIClipboard;
if (!clip)
return false;
clip.setData(trans,null,clipid.kGlobalClipboard);
}
}

标签:

Cross-Browser XMLHttpRequest v1.2(通用)

来源:http://www.scss.com.au/family/andrew/webdesign/xmlhttprequest/

 

/*

Cross-Browser XMLHttpRequest v1.2
=================================

标签:

建一个XMLHttpRequest对象池

在ajax应用中,通常一个页面要同时发送多个请求,如果只有一个XMLHttpRequest对象,前面的请求还未完成,后面的就会把前面的覆盖掉,如果每次都创建一个新的XMLHttpRequest对象,也会造成浪费。解决的办法就是创建一个XMLHttpRequset的对象池,如果池里有空闲的对象,则使用此对象,否则将创建一个新的对象。

下面是我最近写的一个简单的类:

/**
 * XMLHttpRequest Object Pool
 *
 * @author    legend <legendsky@hotmail.com>
 * @link      http://www.ugia.cn/?p=85
 * @Copyright www.ugia.cn
 */ 

var XMLHttp = {
    
_objPool: [],

    
_getInstance: function ()
    {
        for (var 
0this._objPool.length++)
        {
            if (
this._objPool[i].readyState == || this._objPool[i].readyState == 4)
            {
                return 
this._objPool[i];
            }
        }

        
// IE5中不支持push方法
        
this._objPool[this._objPool.length] = this._createObj();

        return 
this._objPool[this._objPool.length 1];
    },

    
_createObj: function ()
    {
        if (
window.XMLHttpRequest)
        {
            var 
objXMLHttp = new XMLHttpRequest();

        }
        else
        {
            var 
MSXML = ['MSXML2.XMLHTTP.5.0''MSXML2.XMLHTTP.4.0''MSXML2.XMLHTTP.3.0''MSXML2.XMLHTTP''Microsoft.XMLHTTP'];
            for(var 
0MSXML.length++)
            {
                
try
                
{
                    var 
objXMLHttp = new ActiveXObject(MSXML[n]);
                    break;
                }
                
catch(e)
                {
                }
            }
         }          

        
// mozilla某些版本没有readyState属性
        
if (objXMLHttp.readyState == null)
        {
            
objXMLHttp.readyState 0;

            
objXMLHttp.addEventListener("load", function ()
                {
                    
objXMLHttp.readyState 4;

                    if (
typeof objXMLHttp.onreadystatechange == "function")
                    {
                        
objXMLHttp.onreadystatechange();
                    }
                },  
false);
        }

        return 
objXMLHttp;
    },

    
// 发送请求(方法[post,get], 地址, 数据, 回调函数)
    
sendReq: function (methodurldatacallback)
    {
        var 
objXMLHttp this._getInstance();

        
with(objXMLHttp)
        {
            
try
            
{
                
// 加随机数防止缓存
                
if (url.indexOf("?") > 0)
                {
                    
url += "&randnum=" Math.random();
                }
                else
                {
                    
url += "?randnum=" Math.random();
                }

                
open(methodurltrue);

                
// 设定请求编码方式
                
setRequestHeader('Content-Type''application/x-www-form-urlencoded; charset=UTF-8');
                
send(data);
                
onreadystatechange = function ()
                {
                    if (
objXMLHttp.readyState == && (objXMLHttp.status == 200 || objXMLHttp.status == 304))
                    {
                        
callback(objXMLHttp);
                    }
                }
            }
            
catch(e)
            {
                
alert(e);
            }
        }
    }
}; 


示例:

<script type="text/javascript" src="xmlhttp.js"></script>
<script type="text/javascript">
function test(obj)
{
    alert(obj.statusText);
}

XMLHttp.sendReq('GET', 'http://www.ugia.cn/wp-data/test.htm', '', test);
XMLHttp.sendReq('GET', 'http://www.ugia.cn/wp-data/test.htm', '', test);
XMLHttp.sendReq('GET', 'http://www.ugia.cn/wp-data/test.htm', '', test);
XMLHttp.sendReq('GET', 'http://www.ugia.cn/wp-data/test.htm', '', test);

alert('Pool length:' + XMLHttp._objPool.length);
</script> 

标签:

AJAX开发简略 (第二部分)

AJAX开发

  • 7.1、AJAX应用到的技术
  • 7.2、AJAX开发框架
  • 7.3、简单的示例
  • 7.4、文档对象模型(DOM)
  • 7.5、处理XML文档
  • 参考文章

七、AJAX开发
  到这里,已经可以清楚的知道AJAX是什么,AJAX能做什么,AJAX什么地方不好。如果你觉得AJAX真的能给你的开发工作带来改进的话,那么继续看看怎么使用AJAX吧。

7.1、AJAX应用到的技术
  AJAX涉及到的7项技术中,个人认为Javascript、XMLHttpRequest、DOM、XML比较有用。

A、XMLHttpRequest对象
  XMLHttpRequest是XMLHTTP组件的对象,通过这个对象,AJAX可以像桌面应用程序一样只同服务器进行数据层面的交换,而不用每次都刷新界面,也不用每次将数据处理的工作都交给服务器来做;这样既减轻了服务器负担又加快了响应速度、缩短了用户等待的时间。

  IE5.0开始,开发人员可以在Web页面内部使用XMLHTTP ActiveX组件扩展自身的功能,不用从当前的Web页面导航就可以直接传输数据到服务器或者从服务器接收数据。,Mozilla1.0以及NetScape7则是创建继承XML的代理类XMLHttpRequest;对于大多数情况,XMLHttpRequest对象和XMLHTTP组件很相似,方法和属性类似,只是部分属性不同。

XMLHttpRequest对象初始化:
<script language=”javascript”>
var http_request = false;
//IE浏览器
http_request = new ActiveXObject("Msxml2.XMLHTTP");
http_request = new ActiveXObject("Microsoft.XMLHTTP");
//Mozilla浏览器
http_request = new XMLHttpRequest();
</script>

  XMLHttpRequest对象的方法:

方法 描述
abort()

标签:

AJAX开发简略 (第一部分)

在使用浏览器浏览网页的时候,当页面刷新很慢的时候,你的浏览器在干什么?你的屏幕内容是什么?是的,你的浏览器在等待刷新,而你的屏幕内容是一片空白,而你在屏幕前苦苦的等待浏览器的响应。开发人员为了克服这种尴尬的局面,不得不在每一个可能需要长时间等待响应的页面上增加一个DIV,告诉用户“系统正在处理您的请求,请稍候……”。

  现在,有一种越来越流行越热的“老”技术,可以彻底改变这种窘迫的局面。那就是AJAX。如今,随着Gmail、Google-maps的应用和各种浏览器的支持,AJAX正逐渐吸引全世界的眼球。

一、AJAX定义
   AJAX(Asynchronous JavaScript and XML)其实是多种技术的综合,包括Javascript、XHTML和CSS、DOM、XML和XSTL、XMLHttpRequest。其中:

  使用XHTML和CSS标准化呈现,使用DOM实现动态显示和交互,使用XML和XSTL进行数据交换与处理,使用XMLHttpRequest对象进行异步数据读取,使用Javascript绑定和处理所有数据。

  在AJAX提出之前,业界对于上述技术都只是单独的使用,没有综合使用,也是由于之前的技术需求所决定的。随着应用的广泛,AJAX也成为香饽饽了。

二、现状与需要解决的问题
  传统的Web应用采用同步交互过程,这种情况下,用户首先向HTTP服务器触发一个行为或请求的呼求。反过来,服务器执行某些任务,再向发出请求的用户返回一个HTML页面。这是一种不连贯的用户体验,服务器在处理请求的时候,用户多数时间处于等待的状态,屏幕内容也是一片空白。如下图:

  自从采用超文本作为Web传输和呈现之后,我们都是采用这么一套传输方式。当负载比较小的时候,这并不会体现出有什么不妥。可是当负载比较大,响应时间要很长,1分钟、2分钟……数分钟的时候,这种等待就不可忍受了。严重的,超过响应时间,服务器干脆告诉你页面不可用。另外,某些时候,我只是想改变页面一小部分的数据,那为什么我必须重新加载整个页面呢?!当软件设计越来越讲究人性化的时候,这么糟糕的用户体验简直与这种原则背道而驰。为什么老是要让用户等待服务器取数据呢?至少,我们应该减少用户等待的时间。现在,除了程序设计、编码优化和服务器调优之外,还可以采用AJAX。

三、为什么使用AJAX
  与传统的Web应用不同,AJAX采用异步交互过程。AJAX在用户与服务器之间引入一个中间媒介,从而消除了网络交互过程中的处理—等待—处理—等待缺点。用户的浏览器在执行任务时即装载了AJAX引擎。AJAX引擎用JavaScript语言编写,通常藏在一个隐藏的框架中。它负责编译用户界面及与服务器之间的交互。AJAX引擎允许用户与应用软件之间的交互过程异步进行,独立于用户与网络服务器间的交流。现在,可以用Javascript调用AJAX引擎来代替产生一个HTTP的用户动作,内存中的数据编辑、页面导航、数据校验这些不需要重新载入整个页面的需求可以交给AJAX来执行。

标签:

让您的Ajax应用加载数据时界面友好

 Ajax火啊,火到了居然Loading Icons都有很多人专门提供的地步。下面是我同事给我介绍的一些提供Ajax Activity Indicators的网站,共享给大家,以便让我们的Ajax应用具有更好的用户体验。

    http://www.ajaxload.info/
    AjaxLoad.png
    // 可以自己根据需求创建Ajax Indicators,不过动态效果都是转圈圈@_@


    http://mentalized.net/activity-indicators/
    ActivityIndicators.png


    http://www.napyfab.com/ajax-indicators/
    AjaxIndicators.png
    // 这个站点的样式比较丰富,推荐哦!~

标签:

分页:«1234567»