代码改变世界

随笔分类 - 04. 前端表现

上周末Jscex项目介绍的幻灯片

2011-05-16 14:06 by Jeffrey Zhao, 16883 阅读, 收藏, 编辑
摘要:上周末,在风景秀丽的浙江大学校园内,举行了NodeParty杭州站的活动。我在活动上结合Node.js项目对Jscex进行了简单介绍,包括其设计目的,设计原则,使用方式,高级模式,组成部分等等。在场的许多朋友也提出了不少问题,我也一一作了解答或是演示。总体感觉还算不错,毕竟是亲手编写的项目,对其各方面还是了然于胸的。在此发布演讲用的幻灯片,希望能给不在现场的同学带来一些帮助。 阅读全文

Jscex使用BSD授权协议正式发布

2011-04-22 00:18 by Jeffrey Zhao, 12538 阅读, 收藏, 编辑
摘要:这次打算把Jscex好好搞一下了,其实很少会有技术方面的障碍能“轮到”我们去突破,但我觉得Jscex的确有机会,HTML 5、Node.js各个都是红火的玩意儿。前几天我花了两个晚上用半生不熟的中式英语写了一篇自认为比较完整的说明文字放到了Github上的项目首页上,没想到几个小时后便收到了StratifiedJS(一个与Jscex目标有些类似的项目)作者的邮件,提到了一些关于StratifiedJS的事情。我向他咨询了StratifiedJS的某些细节问题,也向他简单介绍了Jscex的实现原理。如今Jscex已经使用BSD授权协议正式发布(中文站也会在近期推出),再进行一些细节上的优化便要开始作推广了。 阅读全文

Jscex项目现状:UglifyJS解析器及AOT编译器

2011-04-15 02:09 by Jeffrey Zhao, 14463 阅读, 收藏, 编辑
摘要:Jscex项目是我为了简化JavaScript异步的一个类库,支持任意JavaScript(ECMASCript 3)引擎。Jscex小巧而强大,可以极大地改善前端的AJAX及动画等场景的编程体验,同样也可以用在node.js进行服务器开发。从产生Jscex的想法到现在也有几个月的时间了,也一直想设法进行推广。在思考过程也发现了它在实际生产中可能会遇到的问题,于是前两个星期的主要工作,便是针对这些问题进行优化。首先我将Jscex的JavaScript分析器从Narcissus换成了UglifyJS,并基于node.js开发了一个简单的AOT编译器。接下来我也打算写个稍微详细一点的介绍,然后在国外社区看看反响如何。 阅读全文

使用Fiddler辅助观看InfoQ的视频

2009-12-29 12:04 by Jeffrey Zhao, 9537 阅读, 收藏, 编辑
摘要:InfoQ是一个好地方,而我认为其中最有价值的资源,便是其中的演讲视频。InfoQ在这方面有个特点:在演讲视频下方提供了清晰的幻灯片,而在播放的同时,还会根据进度进行切换。这观看体验自然比单纯的演讲录像要高出许多。可惜的是,时不时有朋友会向我反馈说,InfoQ实在是太慢,几乎无法流畅地观看视频。由于一时半会儿InfoQ也不会在中国放CDN,因此视频加载速度这问题……几乎无法解决。还好,如果我们退而求其次,至少可以使用Fiddler等工具来“缓解”这个问题。 阅读全文

浅谈代码着色(下):服务器端着色

2009-12-15 15:38 by Jeffrey Zhao, 6533 阅读, 收藏, 编辑
摘要:上篇文章谈了客户端着色,而现在自然就来讨论服务器端着色了。先下个定义:我在这里谈的“服务器端着色”,是指直接从服务器端输出着色效果的做法(与“客户端着色时”输出纯代码文本相对)。至于这个着色效果是如何获得的,例如是由另一个用户直接提供的,还是用户提供纯代码文本,而用服务器端逻辑“着色”,在这里就统称为“服务器端”着色了。不过接下去的讨论,我们还是会作一些区分。 阅读全文

浅谈代码着色(上):客户端着色

2009-12-14 19:53 by Jeffrey Zhao, 7465 阅读, 收藏, 编辑
摘要:作为程序员,写文章时总免不了插入代码,而对代码进行着色几乎已经成为一个基础,一个事实标准。代码着色的确可以大大加强代码的可读性,因此即便是再不待见IDE的朋友,代码着色永远是必不可少的。不过在网页中进行代码着色的方式有很多,现在我们就来对比一下。记得之前也有朋友写过,但我总觉得不够完整,于是还是自己写一下吧。我们先来看客户端的着色方式。 阅读全文

在项目中使用Google Closure Compiler

2009-12-09 09:13 by Jeffrey Zhao, 29360 阅读, 收藏, 编辑
摘要:现在的Web项目总是离不开大量JavaScript,而JS文件的体积也越来越大,也越来越影响页面的感知性能(Perceived Performance)。因此,我们会对JS文件进行压缩,一方面是使用Gzip,而另一方面则是去除JS文件里的注释、空白,并且压缩局部变量长度等等。对于一些成熟的类库来说,它们本身都会提供“完整注释”以及“强烈压缩”两个版本。但是,有时候我们需要自己修复类库里的bug,这只能在注释版中修改,对于压缩版自然就无能为力了。此外,自定义的脚本文件一般也值得一压。因此我在项目中时常会备一个脚本压缩工具。 阅读全文

真有必要去除HTML中的空白字符吗?

2009-12-07 17:59 by Jeffrey Zhao, 14191 阅读, 收藏, 编辑
摘要:刚才有朋友在MSN上问我说,他的页面中有许多空白字符,打开源文件一看发现这代码稀疏得很。他觉得很浪费,他说有什么办法可以去除它们。我问他“你的页面使用GZip压缩了吗?”他说用了,于是我回答说“那么就不用去除空白字符了,连续空白字符压缩得很好,去掉后效果不大的”。这时我又不禁想到早上那篇《博客园首页优化心得》中也有一条是“去除HTML中的空格、空行”,于是我便打算尝试一下,去除空白字符到底有多少效果。 阅读全文

jQuery Validation插件remote验证方式的Bug

2009-12-04 14:29 by Jeffrey Zhao, 25653 阅读, 收藏, 编辑
摘要:jQuery插件很多,其中一个重要的插件便是jQuery Validation,它的作用是对表单进行验证,还上了jQuery官网。不过奇怪的是,最近用下来感觉有些古怪,因为好像有些死板,已有功能的应变能力还不强,甚至还有个奇怪的Bug。任何项目有Bug其实也正常,但这个Bug其实是一个文档上已经记载了,却没有实现的功能,这就有些说不过去了。这个问题便出在remote验证方式上,还好修改起来非常容易,在此记录一下,也方便以后的参考。 阅读全文

如何对一个博客系统进行CSS管理?

2009-11-10 19:56 by Jeffrey Zhao, 17208 阅读, 收藏, 编辑
摘要:忽然发现,我的博客皮肤又改变了,这次是About栏。我在我的博客版式上投入了很大的精力,动用了大量的JavaScript和自定义CSS,希望可以让浏览效果更加“和谐”。可是,博客园在样式管理上似乎经常会出现一些问题,时不时让一些基础的样式修改破坏了版式。为什么这样的事情总是一而再,再而三地发生呢?这无法不让我多想一些。似乎这次的问题是由两方面原因造成的:1) 博客园修改了过于宽泛的选择器 2) 皮肤的样式直接依赖了最基础的样式 阅读全文

关于网页*静态化*及SEO问题的一些补充

2009-07-06 00:08 by Jeffrey Zhao, 14253 阅读, 收藏, 编辑
摘要:前一篇讨论“静态页”的文章反响不错,不少朋友发表了自己的看法,也给老赵更多的想法。虽然也在前一篇文章后面回复了不少内容,但是就以往经验来看,总结为一篇新的文章会让我想表达的内容更为明确。对于“静态化”这一原本就非常容易让人混淆的概念来说更是如此。在这篇文章里,老赵也会谈谈自己对于SEO这个工作的看法——以及以前遇到过的一个SEO“专家”。欢迎围观。 阅读全文

谈*静态页*(或网页*静态化*)的时候,请区分一些概念

2009-07-05 01:37 by Jeffrey Zhao, 29266 阅读, 收藏, 编辑
摘要:“静态页”,在Web应用程序开发中是很常见的概念。只是我发现目前还是有相当部分的朋友,在这方面的存在一定的误区。不久前有朋友写了一篇题为《提供生成静态页核心代码》的文章,介绍了一种“向硬盘写入页面文件”的方式。这篇文章的内容在此并不多作讨论,只是它的摘要存在一个严重的问题,因为它混淆了两个概念。现在独立写一篇文章,也想把一些问题讲讲清楚,以后在讨论的时候也好有个准。 阅读全文

正在构建一个新的版式

2009-05-20 20:55 by Jeffrey Zhao, 21987 阅读, 收藏, 编辑
摘要:老赵对目前博客园中的模板都不太满意:样式单调,元素不够丰富,不容易Hack,不够“标准”,不够充分利用屏幕横向距离等等。因此和dudu商量后,准备为博客园新增一个模板。 阅读全文

精化集ASP.NET AJAX与ASP.NET MVC分类第二轮筛选结果

2008-06-14 16:48 by Jeffrey Zhao, 47087 阅读, 收藏, 编辑
摘要:以下是包同学导给我的清单。老赵的第二轮把关很严,杀了几乎99%的文章。不过似乎有少部分并没有经过我的手,可能是其他同学转过来的吧。第三轮老赵依旧会严格把关,肯定也会杀更多(包括通过其他同学第二轮的)文章。请大家监督,有疑问请及时告诉老赵。 阅读全文

觉得有必要来澄清几组重要概念

2008-06-04 01:51 by Jeffrey Zhao, 35838 阅读, 收藏, 编辑
摘要:在阅读很多朋友问题的过程中,以及平时和别人讨论中,亦或是园子里的文章中经常发现一些误用概念的情况。如果在概念上没有形成共识,那么在工作和交流上就会造成许多问题。因此,老赵已觉得有必要特地来澄清一些概念,解释一下这些概念之间的区别和联系。希望在明确这些概念之后,大家能够把注意力集中在对于具体问题的分析解决上,而不要让沟通成为瓶颈。 在这篇文章中,我希望澄清三组概念,它们是: AJAX / AJAX框架 / AJAX.NET (Professional) / ASP.NET AJAX LINQ / LINQ to SQL / LINQ to XXX Lambda Expression / Expression Tree / 匿名方法 阅读全文

更新:让UpdatePanel支持上传文件

2008-05-04 08:57 by Jeffrey Zhao, 36326 阅读, 收藏, 编辑
摘要:在一年多前我发布了一系列文章(让UpdatePanel支持文件上传(1)、(2)、(3)、(4)、(5)),设法让UpdatePanel支持上传文件。可惜缺陷无数,当时收到了无数bug report但是我都没有时间(和兴趣)去解决,因此只是一个实验品中的实验品。这个组件还有一个问题就在于非常复杂,复杂的原因是为了解决iframe传输数据的问题。当时想了很多办法最终让IE6、7,FireFox 1.5支持了这个组件,但是对于Safari,Opera等浏览器就无能为力了。最近发现jQuery的Form插件能够在一定程度上支持我需要的功能,于是就有了简化并改进该控件的想法。虽然后来发现jQuery在这方面的表现并不如我想象中那么好…… 阅读全文

不妨来做个尝试:UpdatePanel for ASP.NET MVC

2008-04-27 23:59 by Jeffrey Zhao, 33488 阅读, 收藏, 编辑
摘要:前一段时间尝试为ASP.NET MVC构建了一个类似于UpdatePanel的AJAX解决方案,本文叙述了这个组件的设计思路以及使用方式,并提供了源代码以及示例程序。 阅读全文

强烈推荐一个有关前台开发技术的Blog

2008-04-21 14:51 by Jeffrey Zhao, 23679 阅读, 收藏, 编辑
摘要:http://www.cnblogs.com/ruxpinsp1 这是我的一个同事,我们一般叫他“大胡仔”(原因可见其自画像http://www.cnblogs.com/ruxpinsp1/archive/2008/04/20/1162878.html)。此人精通(绝不是各招聘启事或简历上的“精通”)前台开发,对于CSS样式在各种浏览器的各种版本下之间的差别了如指掌。此外又精通JavaScript... 阅读全文

推荐一篇文章:火星人的耳机

2008-03-23 23:12 by Jeffrey Zhao, 16631 阅读, 收藏, 编辑
摘要:大名鼎鼎的Joel Spolsky最近写了一篇很有趣的文章《Martian Headsets》。写这篇文章的起因是IE8的推出,这让Joel忽然有兴趣从各个角度讨论Web标准之争的各个方面,比如缘由,现状,以及用户的反应等等。非常值得一看。原文链接:http://www.joelonsoftware.com/items/2008/03/17.html翻译链接:http://luoshengblog... 阅读全文

MIX 2008与ASP.NET MVC框架的Road-Map

2008-02-13 17:38 by Jeffrey Zhao, 22327 阅读, 收藏, 编辑
摘要:ScottGu同学最近在Blog上发布了一些有关MIX 2008和ASP.NET MVC框架的消息。 阅读全文

随便说说:在ASP.NET应用程序中上传文件

2008-02-12 17:25 by Jeffrey Zhao, 37648 阅读, 收藏, 编辑
摘要:在Web程序中上传文件是很常见的需求,最近忽然想到了点这方面的内容,就随便谈谈吧,希望对大家有帮助。 阅读全文

技巧:使用User Control做HTML生成

2007-12-30 23:06 by Jeffrey Zhao, 23825 阅读, 收藏, 编辑
摘要:User Control大家肯定不会陌生,在使用ASP.NET的过程中,除了aspx页面,最常见的就莫过于ascx了。ascx是一个有独立逻辑的组件,提供了强大的复用特性,合理使用,能够大大提高开发效率。通过User Control直接生成HTML内容其实已经是一个比较常用的技巧了(尤其在AJAX时代),不过网络上这方面的内容比较少,很多人还是在苦苦地拼接字符串,因此在这里我通过一个实例简单介绍一下这个技巧。 阅读全文

为WebForms说几句话,以及一些ASP.NET开发上的经验(3)

2007-12-23 18:44 by Jeffrey Zhao, 13447 阅读, 收藏, 编辑
摘要:有人说,客户端ID污染问题使脚本代码很难做到“内聚”。可能他的意思是将脚本代码提取到js文件中吧。但是我认为,这种污染“迫使”我们必须使用内聚性高的方式进行客户端开发。 这也算是一种因祸得福吧。 阅读全文

为WebForms说几句话,以及一些ASP.NET开发上的经验(2)

2007-12-22 22:41 by Jeffrey Zhao, 15056 阅读, 收藏, 编辑
摘要:在ASP.NET的WebForms刚出现时,各种“演示”看上去真的很美。这个特点微软至今还保留着,各微软技术大会上的演示真的让人感到心潮澎湃。在我看来,那些“激素大会”更是一种推广策略,而并没有将目光集中在技术细节的本身。所以微软的东西似乎总是有入门容易提高难的“毛病”。开发人员被“宠坏”了,上一篇文章中有位朋友说这就是“穷人的孩子早当家”,还是有一定道理的。在.NET环境下我们就像是官宦子弟,不过这并不能成为我们习惯于“吃喝嫖赌”的理由。我们要合理利用富裕的环境带给我们的资源,但是要适当地抛弃一些不好的东西。 阅读全文

[EBook]OReilly - High Performance Web Sites

2007-11-26 14:26 by Jeffrey Zhao, 8784 阅读, 收藏, 编辑
摘要:就是那本书,提出了14条开发高性能Web应用准则的书。 阅读全文

创业公司招聘前台开发人员(Front-end Web Developer)

2007-11-23 14:35 by Jeffrey Zhao, 4309 阅读, 收藏, 编辑
摘要:大家好,老赵开始创业了。老赵目前在的一家“公司”正在起步,自觉机会不错,我们有着大多数其他创业公司无法比拟的优势(但是限于某些原因我无法再这里详细地透露给您)。正因如此,我们需要“少”而“精”的成员来成为技术团队的骨干。目前我们已经有了两个开发人员和一个测试人员,也有了非常专业的设计师,似乎目前唯一欠缺的技术力量就是前台开发人员了。招聘职位:前台开发人员(Front-end Web Develop... 阅读全文

在网页里添加Web Live Messenger对话框

2007-11-10 00:37 by Jeffrey Zhao, 9491 阅读, 收藏, 编辑
摘要:为您的页面也添加一个Web Live Messenger吧! 阅读全文

编写兼容多浏览器的JavaScript代码——微软JScript团队JScript Deviations from ES3草案

2007-11-02 22:45 by Jeffrey Zhao, 2832 阅读, 收藏, 编辑
摘要:实话说,常见的JavaScript在不同浏览器的区别并非那么难以处理,只要有一定JavaScript开发经验就会大体知道该如何“回避”某些问题。不过这份文档还是仔细比对了ECMAScript 3标准以及JavaScript在IE、FireFox、Safari、Opera四款浏览器中的实现,希望能够对JavaScript开发人员有帮助——区别的确很大,之前还真的没有想到这些。http://blogs... 阅读全文

客户端访问Web Service方法的一个细节

2007-07-23 22:02 by Jeffrey Zhao, 13122 阅读, 收藏, 编辑
摘要:之前遇到一个要求,需要能够取消一个正在进行中的Web Service。这也是我第一次遇到这个功能,不过不难,我想。既然ASP.NET AJAX的客户端与服务器端通信完全通过Microsoft AJAX Library的异步通信层进行,那么我们只要得到正在请求Web Service的Sys.Net.WebRequest对象,调用其abort方法就可以了。但是究竟应该如何得到这个对象呢?其中似乎还有这么一些问题…… 阅读全文

toString方法无法被继承?

2007-07-17 00:23 by Jeffrey Zhao, 7970 阅读, 收藏, 编辑
摘要:在我看来,toString方法是一个类最重要的方法之一。在JavaScript中,将一个对象转化为字符串形式的默认方法就是调用其toString方法。因此,为类型实现一个合理的toString方法对于开发和调试都有一定的好处。在面向对象编程中,在父类中定义toString方法,以此为它的各个子类提供相似的字符串表现形式是常用的做法之一,但是如果您使用Microsoft AJAX Library的面向对象机制进行开发时就会遇到一个问题。那就是toString方法无法被继承。说的更明白一些,就是子类无法获得父类的toString方法的实现。除非在子类中直接定义一个toString方法,否则它只能含有JavaScript中默认的toString方法。很显然,这没有任何意义,也失去了面向对象的重要特性。这是为什么?又该如何解决呢? 阅读全文

Tip:在使用AjaxControlTookit的控件时响应事件

2007-07-11 22:31 by Jeffrey Zhao, 7900 阅读, 收藏, 编辑
摘要:AjaxControlTookit中控件的关键在于客户端的Behavior对象,Behavior对象大都有丰富的属性,方法和事件。在目前的版本中,为某些Behavior添加Event Handler并非一件很容易的事情。相信今后的AjaxControlToolkit版本中将会为一些较早的Extender补充对于客户端事件的支持,让我们拭目以待吧,只是眼下我们还需要使用一些较为有技巧的方式来实现功能了。 阅读全文

使用ASP.NET AJAX访问Script Method时启用客户端缓存

2007-07-02 12:31 by Jeffrey Zhao, 6703 阅读, 收藏, 编辑
摘要:缓存是开发高性能和高可用性Web应用的重要手段之一。作为ASP.NET AJAX的关键功能,从客户端访问Script Method会被大量用于使用ASP.NET开发的AJAX应用。这个功能有一个内置的服务器端缓存机制,不过如果我们能在客户端进行缓存则会得到更好的效果。 阅读全文

ScriptPath属性的拙劣设计

2007-06-25 20:45 by Jeffrey Zhao, 5417 阅读, 收藏, 编辑
摘要:您在为AjaxControlTookit开发Extender控件时使用ScriptPath属性吗?ScriptPath属性的拙劣设计几乎使它成为了ExtenderControlBase类中最没有用的属性了。 阅读全文

80+ AJAX-Solutions For Professional Coding

2007-06-22 13:33 by Jeffrey Zhao, 3478 阅读, 收藏, 编辑
摘要:http://www.smashingmagazine.com/2007/06/20/ajax-javascript-solutions-for-professional-coding 非常好的AJAX资源,喜欢看示例的朋友有福了。如果能够没有障碍地完成这些内容,其AJAX能力基本上可以算是一流了。 阅读全文

StyledAutoComplete - 支持丰富样式的自动补全

2007-06-12 18:15 by Jeffrey Zhao, 6947 阅读, 收藏, 编辑
摘要:几个月前,我扩展了Atlas CTP时期的的AutoCompleteBehavior,到了ASP.NET AJAX正式版之后这个扩展自然就不能用了。其实这段时间内有不少朋友问我该如何做到像Google Suggest那样带丰富样式的自动补全功能,但是由于各种原因,我没有深入地研究它,更别提对它的扩展了。最近手头正好有些时间,也就逼迫自己耐着性子读了读AutoCompleteBehavior的代码,并作了这个扩展。 阅读全文

深入JavaScript与.NET Framework中的日期时间(3):JavaScript中的Date类型(中)

2007-06-06 17:29 by Jeffrey Zhao, 7296 阅读, 收藏, 编辑
摘要:本文详细讲解了JavaScript中Date对象的以下几个方面: 浏览器默认格式字符串 解析时间日期字符串 系统设定时间日期字符串 如何在实际开发中使用客户端系统的格式 阅读全文

深入JavaScript与.NET Framework中的日期时间(2):JavaScript中的Date类型(上)

2007-06-06 14:02 by Jeffrey Zhao, 4934 阅读, 收藏, 编辑
摘要:在JavaScript中处理时间使用的就是Date原生类型了,这也是在使用JavaScript进行开发时最常用的对象之一。本文讲述了关于JavaScript中Date类型的以下部分内容: 概念 Date函数 Date对象的构造 阅读全文

分清ASP.NET AJAX中的Extender和Behavior模型

2007-06-04 13:32 by Jeffrey Zhao, 7303 阅读, 收藏, 编辑
摘要:ASP.NET AJAX提出了多种模型,在客户端有Component、Control和Behavior模型,在服务器端有ScirptControl和Extender模型。这些模型各有各的用途,但是请注意非常重要的一点:客户端模型和服务器端模型是相互独立的。我们必须意识到以下三点,才能灵活地使用Extender和Behavior。 Extender模型和Behavior模型没有必然联系。 Behavior可以独立于Extender执行。 所有效果是由Behavior提供的。 阅读全文

深入JavaScript与.NET Framework中的日期时间(1):基本概念与概述

2007-06-03 07:04 by Jeffrey Zhao, 5210 阅读, 收藏, 编辑
摘要:日期时间是开发过程中最尝使用的数据类型之一,但是很多开发人员在使用过程中忽视了时间日期的一些特性。现在的应用越来越讲究“国际化”和“本地化”,它们的重要特征之一就是一些数据类型的格式或换算,日期时间是其中之一(其余还有货币,数字等等)。在进一步讨论开发中的日期时间问题之前,我们需要先理清有关时间的一些基础概念。对于时间日期来说,最重要的可能就是“时差”问题,主流编程语言中表示日期时间对象都对于这个问题有着足够的支持,不过许多开发人员都会忽视这一点。这就是这片文章中最主要会谈论的问题。虽然大部分的应用可能都不涉及到“全球化”,但是我们还是有充分的理由来搞清楚时间方面的问题。 阅读全文

有关注册DataItem的一些可能被忽视的事情

2007-04-18 15:05 by Jeffrey Zhao, 6381 阅读, 收藏, 编辑
摘要:在UpdatePanel对页面进行部分刷新时注册一些Data Item是ASP.NET AJAX的特点之一。我们可以在服务器端为某个控件注册一个字符串甚至是一个对象,然后在客户端将将其取回。但是现在我希望向您展示一些您可能会忽视的事情。 阅读全文

Nikhil更新了UpdateControls组件

2007-04-14 16:30 by Jeffrey Zhao, 3144 阅读, 收藏, 编辑
摘要:Nikhil更新了他的UpdateControl包,改进了bug,也添加了一些功能。这部分组件是了解如何基于ASP.NET和ASP.NET AJAX进行开发的不错的例子。在这里推荐一下。:) http://www.nikhilk.net/Entry.aspx?id=155 阅读全文

让UpdatePanel支持文件上传(5):支持页面重定向的HttpModule

2007-04-12 11:51 by Jeffrey Zhao, 7942 阅读, 收藏, 编辑
摘要:在最后,我们还必须编写一个HttpModule来支持异步刷新时页面的重定向。 阅读全文

让UpdatePanel支持文件上传(4):数据传输与解析机制

2007-04-11 15:02 by Jeffrey Zhao, 6145 阅读, 收藏, 编辑
摘要:现在就要开始整个项目中最有技巧的部分了。如果我们的组件需要在多种浏览器中正常的运行,我们必须好好考虑一下发送和解析数据的方式。如果我们把这部分的机制完全交给ASP.NET AJAX原有的行为来执行,则会遇到问题。 阅读全文

当心异步刷新后的脚本文件加载

2007-04-09 08:43 by Jeffrey Zhao, 6468 阅读, 收藏, 编辑
摘要:如果第一次异步刷新在加载脚本时发起了另一个异步刷新,第二次异步刷新可能就会不受我们控制地被中断了。 阅读全文

让UpdatePanel支持文件上传(3):客户端组件

2007-04-06 10:10 by Jeffrey Zhao, 5065 阅读, 收藏, 编辑
摘要:我们的UpdatePanelIFrameExecutor继承了WebRequestExecutor,因此需要实现许多方法和属性。但是我们事实上不用完整地实现所有的成员,因为客户端的异步刷信机制只会访问其中的一部分。 阅读全文

让UpdatePanel支持文件上传(2):服务器端组件

2007-04-05 11:55 by Jeffrey Zhao, 6281 阅读, 收藏, 编辑
摘要:我们现在来关注服务器端的组件。目前的主要问题是,我们如何让页面(事实上是ScriptManager控件)认为它接收到的是一个异步的回送?ScriptManager控件会在HTTP请求的Header中查找特定的项,但是我们在向IFrame中POST数据时无法修改Header。所以我们必须使用一个方法来“欺骗”ScriptManager。 阅读全文

让UpdatePanel支持文件上传(1):开始

2007-04-04 12:16 by Jeffrey Zhao, 15658 阅读, 收藏, 编辑
摘要:UpdatePanel从一开始就无法支持AJAX的文件上传方式。Eilon Lipton写了一篇文章解释了这个问题的原因。文章中提供了两个绕开此问题的方法。不过,我们为什么不使UpdatePanel兼容FileUpload控件(<input type="file" />)呢?如果可以这样,一定能够受需要使用UpdatePanel上传文件的用户欢迎。 阅读全文

UpdatePanel的妙用:Incremental Content

2007-03-29 20:18 by Jeffrey Zhao, 6582 阅读, 收藏, 编辑
摘要:Incremental Content是我随意取的名字,我有时候会希望,把一些常见的场景,总结出ASP.NET AJAX一些比较固定的使用模式。Incremental Content是我为现在这个“模式”取的名字。这个模式的作用,就是使用UpdatePanel来不断地在页面上增加内容。想到这个使用方式的原因,是因为在中午与Bing对UpdatePanel的一些问题进行了讨论。他谈到,使用UpdatePanel,会造成过多的数据传输上的浪费。例如博客园的回复,事实上要更新的只是新增的内容,而并不需要整个评论区进行刷新。这篇文章谈到的Incremental Content就是为了解决这类问题而产生的。建议dudu在合适的时候修改一下添加评论的代码。:) 阅读全文

SwitchPartManager:在UpdatePanel中灵活地切换不同用户控件

2007-03-29 03:18 by Jeffrey Zhao, 8251 阅读, 收藏, 编辑
摘要:这是一个很常见的使用场景,尤其是出现了UpdatePanel之后:页面中有一排菜单,点击菜单中的每一项,都会使某个UpdatePanel中出现不同的控制面板。在开发时,往往会将每个的控制面板写成不同的用户控件,点击菜单时事实上就是在UpdatePanel中放入不同的用户控件。如果要开发这样的功能,从理论上来说并不困难,但是如果要能够在控件之间灵活切换,甚至要从控件A的某个操作中切换到控件B,可能就需要增加控件之间的耦合度了。因此,如何控制这样的切换似乎需要细细考虑一下。 阅读全文

UpdatePanel终于可以上传文件了!

2007-03-26 20:23 by Jeffrey Zhao, 37443 阅读, 收藏, 编辑
摘要:UpdatePanel终于可以上传文件了!我们要做的,只是在页面上添加一个控件而已。 阅读全文

ModalUpdateProgress控件

2007-03-26 02:33 by Jeffrey Zhao, 8283 阅读, 收藏, 编辑
摘要:在之前的一篇文章中,我谈了如何在页面中“轻量级地”实现了模态的UpdateProgress。这次,我带来了一个“重量级”的实现:ModalUpdateProgress控件。 阅读全文

ASP.NET AJAX官方资源大量更新

2007-03-23 15:05 by Jeffrey Zhao, 6651 阅读, 收藏, 编辑
摘要:这次更新最主要的可能就是官方文档的更新,尤其是对页面的客户端页面生命周期与UpdatePanel客户端生命周期(事实上前者包含了后者)提供了详细的说明和举例。 阅读全文

Tip:Modal UpdateProgress的轻量级解决方案

2007-03-22 08:50 by Jeffrey Zhao, 7211 阅读, 收藏, 编辑
摘要:又被问了这样一个问题:UpdateProgress如何像ModalPopupExtender那样的效果呢?类似的问题有:如何在UpdatePanel里使用ModalPopupExtender呢?我这次仔细想了想,感觉问题并不那么简单。 阅读全文

微软公司高调宣布加入AJAX联盟

2007-03-21 21:16 by Jeffrey Zhao, 2319 阅读, 收藏, 编辑
摘要:微软公司已经宣布加入OpenAjax联盟,一个专注于XML和JavaScript技术开发的团体,微软称将努力帮助团体成员改进和发展AJAX这一具有前景的互联网技术,为Web开发者提供更好的技术支持以及为各个平台的用户提供更好的统一浏览特性。联盟同时公布了30个新的合作伙伴,这样一来AJAX联盟的成员数量达到了72个,同时提出了新的目标--加快AJAX的运行效率,并减少Web2。0应用的时间和成本。... 阅读全文

Apollo 1.0 预览版闪亮登场

2007-03-20 05:33 by Jeffrey Zhao, 1851 阅读, 收藏, 编辑
摘要:我的一个朋友William Cui的一直在关注RIA方面的技术发展,这是他刚写的一篇文章。 Apollo 1.0 预览版闪亮登场 阅读全文

Tip:自定义UpdatePanelTrigger

2007-03-19 10:27 by Jeffrey Zhao, 4801 阅读, 收藏, 编辑
摘要:如果需要的话,您不妨在开发过程中自定义一个UpdatePanel触发器吧。 阅读全文

Animation全接触(2):ParentAnimation模型

2007-03-16 15:16 by Jeffrey Zhao, 3381 阅读, 收藏, 编辑
摘要:ParentAnimation,顾名思义,是一组Animation的父亲,是所有需要包含其它Animation的父类,我们熟悉的ParallelAnimation(并行动画)和SequenceAnimation(顺序动画)都是它的子类。从这个概念上来说,这也是个非常经典的Composit模式应用。 阅读全文

Animation全接触(1):Animation模型初步

2007-03-14 14:04 by Jeffrey Zhao, 4488 阅读, 收藏, 编辑
摘要:初步了解Animation模型。 阅读全文

Animation全接触(前言)

2007-03-14 02:20 by Jeffrey Zhao, 3968 阅读, 收藏, 编辑
摘要:关于AjaxControlToolkit中的Animation的话题,一直留在我的“写作队列”中。但是由于最近事情较多,一直没有开始写这个系列的文章。现在忽然意识到,如果不趁这方面的文章还没有大量出现之前推出的话,我们又要落后于那些外国人了(其实外国人也不可能知道我写了什么,可惜我会知道外国人写的东西,所以我是在“自爽”)。在这个系列中,我将对AjaxControlToolkit中的Animati... 阅读全文

MSDN Webcast“深入浅出ASP.NET AJAX系列”预告及反馈

2007-03-12 16:54 by Jeffrey Zhao, 39177 阅读, 收藏, 编辑
摘要:我为MSDN Webcast准备了一个《深入浅出ASP.NET AJAX系列》,共有十多次课程,希望能够为大家系统的讲解一下如何使用ASP.NET AJAX框架进行开发。在这个系列中,我会尽可能的从“使用”入手,然后对于ASP.NET AJAX框架进行一定程度的深入讲解,使大家能够更自由地使用ASP.NET AJAX框架,并且能够自己着手解决一些使用中的问题。简单地说,这个系列中最着重的就是尽可能的“授人以渔”。希望大家对我的这个系列多提意见和建议,并回复在这篇文章中,我需要您的反馈来改进我的表现。 阅读全文

Tip:“Form_Load时添加的AsyncPostBackTrigger失效”问题分析及解决方案

2007-03-08 04:24 by Jeffrey Zhao, 6496 阅读, 收藏, 编辑
摘要:  最近时间很少,而且总觉得没有什么题材可写。今天无意中看到了Aldebaran's Home提出的一个疑问,为什么在Form_Load方法中动态添加的AsyncPostBackTrigger会在经过一次异步刷新后就失效,导致第二次提交变成了普通的提交。我尝试了一下,果不其然。对ASP.NET AJAX程序集源码的分析之后,我得出了问题原因和解决方案,在这里和大家共享一下。 阅读全文

ASP.NET AJAX Control Toolkit Release 10301

2007-03-03 00:20 by Jeffrey Zhao, 6053 阅读, 收藏, 编辑
摘要:与前几次相比,这次发布属于一个大的调整。 阅读全文

Sys.StringBuilder里的Bug

2007-02-13 02:35 by Jeffrey Zhao, 5893 阅读, 收藏, 编辑
摘要:Sys.StringBuilder出现了这样的Bug,他们一定没有做好Code Review。 阅读全文

鸡肋烹制出的美味——真正可调试的ASP.NET AJAX

2007-02-06 07:23 by Jeffrey Zhao, 6053 阅读, 收藏, 编辑
摘要:ASP.NET AJAX的源代码的确发布了,并且提供了pdb文件,也就是说,我们现在可以用它来调试了。不知道各位朋友们有没有真的用它跟踪到代码中去,至少我用下来之后非常的不满意。官方给出了源代码,我们为什么不设法把它恢复成C#工程呢?于是我新建了一个C# Class Library,把源代码复制到工程中去。然后通过比较编译错误、运行错误以及使用.NET Reflector查看ASP.NET AJAX程序集,一点点补充丢失的资源和代码,费了九牛二虎之力总算比较完美地恢复了ASP.NET AJAX的程序集。 阅读全文

挣脱浏览器的束缚(7) - CrossSubDomainExecutor

2007-02-05 02:31 by Jeffrey Zhao, 4993 阅读, 收藏, 编辑
摘要:在上次的文章中,我们已经提到了一种能够跨子域名进行AJAX请求的方法。我们现在就来实现一个对开发人员透明的实现,它会自动判断这个请求是否是跨子域名,如果不是,则使用传统的方法发出AJAX请求,反之则使用我们的方式。 阅读全文

UpdatePanel与ASP.NET Page的缓存

2007-02-04 11:18 by Jeffrey Zhao, 7011 阅读, 收藏, 编辑
摘要:UpdatePanel的功能大家一定都非常熟悉了。无论是官方还是社区里热心推广ASP.NET AJAX的朋友,都会对于UpdatePanel的使用进行大量说明与展示。但是在这些简单的的示例似乎都遗漏了一个非常重要的问题,这个问题会直接导致UpdatePanel无法正确使用。   这个问题就是ASP.NET Page的缓存。 阅读全文

ASP.NET AJAX正式版的文档发布了

2007-02-02 11:25 by Jeffrey Zhao, 4935 阅读, 收藏, 编辑
摘要:ASP.NET AJAX 1.0的官方文档在不久之前发布了,它包括了Sample,Tutorial,并且为API补充了示例(其实没有多少更新)。关键的是,现在的官方文档已经提供打包下载了,不少朋友(也包括我)就可以收起WebZip,光明正大地在本地使用这份文档了。相信官方会对ASP.NET AJAX会有更多的支持。另外再记录一条信息,这算是ASP.NET AJAX正式版遗漏的Bug之一吧,Sys.... 阅读全文

挣脱浏览器的束缚(6) - AJAX也跨域名

2007-02-02 02:39 by Jeffrey Zhao, 12248 阅读, 收藏, 编辑
摘要:事情的经过是这样的,还是那个个人门户网站。其中有个功能就是RSS订阅,每个订阅作为一个模块出现在页面上。如果一个用户订阅了比较多的RSS,则在打开页面时所有的RSS模块就会开始加载,这时候可能就会需要十几秒甚至更长的时间才能加载完毕。这时,如果用户需要作别的AJAX操作——比如保存页面设置——那么长时间的等待就不可避免了,谁让浏览器对于相同域名只能同时存在两个连接呢?不过这可不是一个好的用户体验,那么我们需要怎么做呢? 阅读全文

WPF/E 2007年2月CTP发布了

2007-02-01 14:42 by Jeffrey Zhao, 3391 阅读, 收藏, 编辑
摘要:WPF/E的06年12月CTP已经过期了,如果使用旧的Runtime打开新的WPF/E应用程序则会弹出如下的对话框。 如果没有将WPF/E Runtime更新到07年2月CTP,可以在这里下载到Windows下的Runtime,这里可以下载Mac下的Runtime。Channel 9上的示例也已经更新为07年2月CTP,似乎这次升级最大的改变就是host.js文件变了,可以在这里下载到这个文件的最... 阅读全文

编写组件,使用JavaScript更新UpdatePanel

2007-01-31 01:12 by Jeffrey Zhao, 10287 阅读, 收藏, 编辑
摘要:如果需要使用JavaScript更新UpdatePanel,以前往往会使用JavaScript来模拟Trigger的触发。我们往往会将一个按钮设为某个UpdatePanel的Trigger,然后在客户端模拟它的点击,使UpdatePanel进行更新。但是这样的做法实在太麻烦了些,也相当的不优雅。现在我们就来编写一个组件解决这个问题。 阅读全文

挣脱浏览器的束缚(5) - 哭笑不得的IE Bug

2007-01-27 03:27 by Jeffrey Zhao, 6543 阅读, 收藏, 编辑
摘要:还记得《ASP.NET AJAX Under the Hood Secrets》吗?这是我在自己的Blog上推荐过的唯一一篇文章(不过更可能是一时兴起)。在这片文章里,Omar Al Zabir提出了他在使用ASP.NET AJAX中的一些经验。其中提到的一点就是:Browsers do not respond when more than two calls are in queue。简单的说,就是在IE中,如果同时建立了超过2两个连接在“连接状态”中,但是没有连接成功(连接成功之后就没有问题了,即使在传输数据),浏览器会停止对其他操作的响应,例如点击超级链接进行页面跳转,直到除了正在尝试的两个连接就没有其他连接时,浏览器才会重新响应用户操作。出现这个问题一般需要3个条件: 同时建立太多连接,例如一个门户上有许多个模块,它们在同时请求服务器端数据。 响应比较慢,从浏览器发起连接,到服务器端响应连接,所花的时间比较长。 使用IE浏览器,无论IE6还是IE7都会这个问题,而FireFox则一切正常。 在IE7里居然还有这个bug,真是令 阅读全文

挣脱浏览器的束缚(4) - 王道!动态添加script元素

2007-01-25 01:19 by Jeffrey Zhao, 8098 阅读, 收藏, 编辑
摘要:我们已经知道,脚本文件的并行下载能够提高页面的加载速度。但是目前还有一个急需解决的问题,那就是对于FireFox浏览器的优化。在我们之前使用的优化方法,无论是简单实用的document.write还是食之无味的defer属性,FireFox浏览器都对此置若罔闻。不过FireFox也不是绝对地“冥顽不灵”,开发人员还是有方法对它进行优化的。 阅读全文

ASP.NET AJAX正式版带来的Validator问题及解决方案

2007-01-24 15:07 by Jeffrey Zhao, 5333 阅读, 收藏, 编辑
摘要:升级到ASP.NET AJAX正式版之后,一般来说重新编译不会有什么问题,不用做什么修改,这是个好消息。不过在执行时就会出现问题了。因为在正式版的程序集中,删除了兼容UpdatePanel的Validator那些类,因此TagMapping时就无法找到需要的类了。 阅读全文

ScriptManager的ResolveScriptReference事件的重要作用

2007-01-23 16:10 by Jeffrey Zhao, 3714 阅读, 收藏, 编辑
摘要:合理使用,支撑一个专业的详细的脚本库也不是件困难的事情。 阅读全文

挣脱浏览器的束缚(3) - 两个连接还不够“并行”

2007-01-22 14:42 by Jeffrey Zhao, 7251 阅读, 收藏, 编辑
摘要:谈谈优化难度:比较document.write与defer、突破两个连接的限制 阅读全文

挣脱浏览器的束缚(2) - 别让脚本引入坏了事

2007-01-20 01:25 by Jeffrey Zhao, 6361 阅读, 收藏, 编辑
摘要:现在哪里还找得到不引入JavaScript脚本文件的Web应用?使用脚本文件的好处多多,其中最重要的可能就是提供缓存能力了。使用脚本文件之后再加上缓存,可以大大降低数据传输量,提高页面打开的速度。不过脚本文件的引入也不是简单得不值一提,我们完全有能力来优化它。 阅读全文

挣脱浏览器的束缚(1) - 前言

2007-01-18 17:08 by Jeffrey Zhao, 7303 阅读, 收藏, 编辑
摘要:最近在为某个人门户站点作优化。   从传统意义上来说,这个站点的各方面都属中规中矩。不过作为一个以客户端为中心的Web应用,其性能,尤其是它的感知性能(Perceived Performance),经常会严重受制于浏览器本身。一个没有对客户端数据访问模型经过精心设计和优化的应用,其导致的结果往往就是无法充分利用带宽,让用户等待的时间变长。换句话说,其Perceived Performance需要进一步的提高。   突破浏览器限制,充分利用带宽,提高性能,尤其是Perceived Performance等等,就是我这次优化的目的。在接下来的几篇文章里,我将以数据说话,探讨浏览器的限制,并从多个方面来谈一下这次优化的各种方式。由于该个人门户使用了ASP.NET AJAX进行开发,因此我也将会给出一些基于ASP.NET AJAX的解决方案,希望会有一定参考价值,对朋友们能有所帮助。 阅读全文

IE Dev Toolbar Beta 3 Released

2007-01-10 13:39 by Jeffrey Zhao, 6215 阅读, 收藏, 编辑
摘要:IE Dev Toolbar不久前发布了Beta 3,新增(或改变)的功能有: 1、工具栏的打开方式: 2、最常用的操作被列举为单独的按钮: 3、Style Tracer: 4、View Source: 阅读全文

Tip:使用Extender的ResolveControlID事件

2006-12-31 03:42 by Jeffrey Zhao, 3764 阅读, 收藏, 编辑
摘要:不知道大家在使用ASP.NET AJAX Control Toolkit里的各个Extender控件时,有没有接触过ResolveControlID事件?这个事件在官方也只用了很少的笔墨来描述。的确,这个事件不太常用,看看ASP.NET AJAX的演示站点,根本没有使用过ResolveControlID事件。本文简单描述了ResolveControlID事件的作用以及使用方式。 阅读全文

Tips:AccordionExtender中的DataTable数据绑定/点击特定元素出发折叠效果

2006-12-29 18:14 by Jeffrey Zhao, 3808 阅读, 收藏, 编辑
摘要:ASP.NET AJAX Control Toolkit中实现地最复杂的Extender估计就是AccordionExtender了。因为它对于DOM元素结构的要求比较高,所以它还为此实现了AccordionPane控件,用来生成符合AccordionBehavior的DOM结构。但是在使用时,似乎总是会遇到一些限制,这里将对于两个问题介绍一下简单的解决方案。 1、使用DataTable进行数据绑定 2、点击指定元素产生折叠效果 阅读全文

不复杂,但是很有趣的JavaScript代码

2006-12-28 13:38 by Jeffrey Zhao, 4056 阅读, 收藏, 编辑
摘要:找个图片比较多的页面,把下面的代码粘贴到地址栏按回车就可以看到效果。:)**************************javascript:R=0; x1=.1; y1=.05; x2=.25; y2=.24; x3=1.6; y3=.24; x4=300; y4=200; x5=300; y5=200; DI=document.images; DIL=DI.length; function... 阅读全文

可能是最漂亮的非静态Page Method解决方案

2006-12-28 13:38 by Jeffrey Zhao, 7756 阅读, 收藏, 编辑
摘要:在我前一片文章《浅谈实例Page Method到静态Page Method的移植》中,我提到了两种属于work around的解决方案,的确有效,如果可以的话我也建议尽可能地改成那样,尤其是第一种“在客户端获得参数信息”的做法,性能很高,值得推荐。不过从“技术”方面来考虑,这两个做法都不如现在这种来得漂亮。我尝试着实现了一个HttpModule,只要使用了它就能轻松使用原来的“非静态Page Method”了,这几乎完全解决了ASP.NET AJAX中无法使用非静态Page Method的问题,CTP时期程序的移植也变得再容易不过。 阅读全文

UpdatePanel与UrlRewrite

2006-12-27 00:42 by Jeffrey Zhao, 9814 阅读, 收藏, 编辑
摘要:今天被问及一个UpdatePanel与Url Rewrite结合时的问题,研究之后得出解决方案,在此和大家分享一下。 阅读全文

浅谈实例Page Method到静态Page Method的移植

2006-12-26 10:48 by Jeffrey Zhao, 4421 阅读, 收藏, 编辑
摘要:最近被问及Page Method的问题比较多,主要还是如何从Atlas CTP中的非静态Page Method转向Beta或RC中的静态Page Method时所遇到的问题。现在我来谈一下在这方面的一些看法,也希望大家能和我一起探讨一下。 阅读全文

WPF/E SDK更新

2006-12-25 00:35 by Jeffrey Zhao, 1634 阅读, 收藏, 编辑
摘要:前天WPF/E SDK同时在WPF/E Dev Center和MSDN Library更新了。现在WPF/E SDK包含以下内容: 更新的SDK文档 更新的Quick Start VS 2005 SP1的模板支持 "WPF/E" (codename) Software Development Kit (SDK) Community Technology Preview (Dec 2006)MSDN... 阅读全文

扩展JavaScript的时候,千万要保留其原来的所有功能

2006-12-24 00:32 by Jeffrey Zhao, 3715 阅读, 收藏, 编辑
摘要:扩展JavaScript的时候,千万要保留其原来的所有功能,因为不知道别人的代码是否会用到这些。而且一般来说,为了写出兼容更多JS框架的代码,最保险的方法就是用JS的原生功能。然而在这个问题上,这次ASP.NET AJAX RC栽跟头了。 阅读全文

WPF/E CTP Quick Start - 第十一部分:示例控件(翻译)

2006-12-21 13:27 by Jeffrey Zhao, 4180 阅读, 收藏, 编辑
摘要:这片文档包含了几个例子,演示了如何使用WPF/E来创建交互式的控件。这篇文档包含了如下部分: “超级链接”示例 “按钮”示例 “滚动条”示例 下面该做什么呢? 阅读全文

ASP.NET AJAX RC Tip:页面中无UpdatePanel时UpdateProgress创建出错问题

2006-12-20 03:02 by Jeffrey Zhao, 3347 阅读, 收藏, 编辑
摘要:安装ASP.NET AJAX RC之后,某些页面总是在创建UpdateProgress时出现脚本错误。刚才简单看了一下System.Web.Extensions.dll中的相关实现,得出了一个解决方案,在这里简单地说一下。 阅读全文

ASP.NET AJAX RC的Script文件引入方式又有了改变

2006-12-18 19:02 by Jeffrey Zhao, 1280 阅读, 收藏, 编辑
摘要:不知道朋友们有没有发现,ASP.NET AJAX RC中Script文件的引入方式有发生了改变。 在ScriptManager中使用ScriptReference引用一个脚本文件时,回归了使用<script />,而不是Sys.Application.queueScriptReference方法,其结果就是这时引入的脚本文件不需要之前的Sys.Application.notifyScr... 阅读全文

WPF/E CTP Quick Start - 第十部分:脚本和鼠标事件(翻译)

2006-12-18 15:56 by Jeffrey Zhao, 3629 阅读, 收藏, 编辑
摘要:WPF/E支持使用JavaScript进行编程,能够使您为WPF/E内容增加交互性。这篇文档包含了如下部分: 脚本与事件 设置属性 设置附加属性 公有鼠标事件 为对象命名并重新获取它们 动态创建WPF/E对象 交互地控制动画 下面该做什么呢? 阅读全文

WPF/E CTP Quick Start - 第九部分:动画(翻译)

2006-12-14 22:49 by Jeffrey Zhao, 4692 阅读, 收藏, 编辑
摘要:WPF/E能够让您使用标记来定义动画。这篇QuickStart介绍了WPF/E的动画特性,并且带领您创建您的第一个WPF/E动画。这篇QuickStart包含了如下部分: 演练:为一个对象添加动画效果 其它类型的动画 Timeline的属性 指定动画变换的值 在同一个对象上添加多个动画 下面该做什么呢? 阅读全文

讲座展示:TechEd Europe DEV 411 - AJAX Patterns with ASP.NET AJAX(3)

2006-12-13 03:30 by Jeffrey Zhao, 3231 阅读, 收藏, 编辑
摘要:这次我选择的讲座内容,是最近在TechEd 2006 Europe中Andre Snanbria和Jeff Prosise的讲座“AJAX Pattern with ASP.NET AJAX”。Jeff Prosise是Wintellect的Co-Founder,Andre Sanabria是ASP.NET AJAX Team的Lead Program Manager。这次讲座的主要内容是讲述了使用ASP.NET AJAX开发AJAX应用的最佳实践,在这次讲座里,会对建立轻量级的客户端控件的方法进行深入,讲述了如何优化脚本代码,并提出了如何避免AJAX开发中常见的问题。本篇文章是这次讲座展示的第三篇,使用了一个例子来观察UpdatePanel的工作方式,并通过几个步骤对这个例子进行优化。 阅读全文

WPF/E CTP Quick Start - 第八部分:媒体(翻译)

2006-12-12 05:26 by Jeffrey Zhao, 3952 阅读, 收藏, 编辑
摘要:WPF/E提供了MediaElement对象,可以让您在页面中播放WMV(Windows Media Video)和WMA(Windows Media Audio)文件。这篇文档包含了以下部分: 在页面中添加媒体信息 有用的MediaElement属性 交互式地控制媒体的播放 下面该做什么呢? 阅读全文

WPF/E CTP Quick Start - 第七部分:文本(翻译)

2006-12-12 00:51 by Jeffrey Zhao, 3179 阅读, 收藏, 编辑
摘要:TextBlock元素能使您在WPF/E内容中添加文本。这篇文档描述了使用TextBlock元素的方式。这篇文档包含了以下部分: TextBlock元素 常用TextBlock属性 Run元素 指定多种字体 下面该做什么呢? 阅读全文

WPF/E CTP Quick Start - 第六部分:图像(翻译)

2006-12-10 23:11 by Jeffrey Zhao, 3201 阅读, 收藏, 编辑
摘要:Image元素能使您在WPF/E中显示位图信息。这篇文档包含了以下部分: Image元素 Stretch属性 使用位图的其它方法 下面该做什么呢? 阅读全文

WPF/E CTP Quick Start - 第五部分:公有图形属性(翻译)

2006-12-10 14:50 by Jeffrey Zhao, 3474 阅读, 收藏, 编辑
摘要:一些属性能够被应用在所有的WPF/E的UIElement对象上:Canvas,shapes和TextBlock。这篇文档描述了这些对象所具有的公有图形属性。这篇文档包含了以下部分: Opacity属性 OpacityMask属性 Clip属性 RenderTransform属性 下面该做什么呢? 阅读全文

另一个开发WPF/E用的Template,无需Web Application Project

2006-12-10 00:21 by Jeffrey Zhao, 1942 阅读, 收藏, 编辑
摘要:官方的WPF/E Template需要基于Web Application Project,不过其实安装后也就两个JS文件,一个Default.html和一个Plugin.xaml文件,何必要Web Application Project?再者基于文件加的Web Site其实也还是不错的。因此John Rayner把这些文件给剥离了出来,制作了一个再简单不过Project Template。具体信息... 阅读全文

WPF/E CTP Quick Start - 第四部分:绘图与填充(翻译)

2006-12-09 23:23 by Jeffrey Zhao, 4464 阅读, 收藏, 编辑
摘要:WPF/E通过提供Ellipse,Rectangle,Line,Polyline,Polygon和Path元素以支持矢量图。同样的,这些元素也被称之为“形状(Shape)”元素。这片文档包含了以下部分 基础形状 其他形状元素 使用画刷填充形状 形状转换 下面该做什么呢? 阅读全文

讲座展示:TechEd Europe DEV 411 - AJAX Patterns with ASP.NET AJAX(2)

2006-12-08 15:33 by Jeffrey Zhao, 3013 阅读, 收藏, 编辑
摘要:这次我选择的讲座内容,是最近在TechEd 2006 Europe中Andre Snanbria和Jeff Prosise的讲座“AJAX Pattern with ASP.NET AJAX”。Jeff Prosise是Wintellect的Co-Founder,Andre Sanabria是ASP.NET AJAX Team的Lead Program Manager。这次讲座的主要内容是讲述了使用ASP.NET AJAX开发AJAX应用的最佳实践,在这次讲座里,会对建立轻量级的客户端控件的方法进行深入,讲述了如何优化脚本代码,并提出了如何避免AJAX开发中常见的问题。本篇文章是这次讲座展示的第二篇,讲述了UpdatePanel的工作方式。 阅读全文

WPF/E CTP Quick Start - 第三部分:Canvas对象(翻译)

2006-12-08 11:57 by Jeffrey Zhao, 3681 阅读, 收藏, 编辑
摘要:Canvas对象是一个设计用来存放和定位各种图形和控件的对象。每一个WPF/E XAML文件都至少有一个Canvas。这篇文当介绍了Canvas对象,并且描述了应该如何添加,定位子对象以及改变其大小。这篇文档包含以下部分。 向您的Canvas里添加一个对象 定位一个对象 控制宽度和高度 嵌套的Canvas对象 下面该做什么呢? 阅读全文

WPF/E CTP Quick Start - 第二部分:创建一个XAML文件(翻译)

2006-12-07 20:47 by Jeffrey Zhao, 3822 阅读, 收藏, 编辑
摘要:在前一篇文档中“创建一个WPF/E项目”中,我们向HTML页面里添加了一个WPF/E控件,并且创建了一个空的XAML文件。这篇文档会向您展示如何在您的XAML文件里创建WPF/E内容。 第一步:创建一个Canvas和命名空间的声明 第二步:画些东西吧! 第三步:查看您的XAML内容 下面该做什么呢? 阅读全文

WPF/E CTP Quick Start - 第一部分:创建一个WPF/E项目(翻译)

2006-12-07 00:46 by Jeffrey Zhao, 5014 阅读, 收藏, 编辑
摘要:您该如何在您的页面中添加WPF/E呢?一个典型的WPF/E项目有4个文件:一个用于存放和显示内容的HTML文件,一个aghost.js文件,一个XAML文件和一个JavaScript文件。这篇文当描述了创建一个WPF/E工程,以及向HTML添加WPF/E内容的三个步骤。这份指导包括了一下部分: * 在您开始之前…… * 第一步:建立一个aghost.js文件 * 第二步:在您的HTML文件中创建一个ActiveX控件 * 第三步:创建一个表示WPF/E内容的文件 * 添加额外的WPF/E内容 * 一个示例工程 * 下面该做什么呢? 阅读全文

[公告]WPF/E学习与研究团队成立 - WPF/E已经来了!

2006-12-06 21:16 by Jeffrey Zhao, 6682 阅读, 收藏, 编辑
摘要:“WPF/E(Windows Presentation Foundation / Everywhere)”是微软的一套用于开发丰富地交互式界面,并且能够跨平台的解决方案。它基于Web,但是超越Web。它使用类似PF(Windows Presentation Foundation)的XAML,能够在多个操作系统下的多个浏览器中执行,只需要安装一个免费的小插件即可。它能够使用JavaScript与XA... 阅读全文

AJAX培训第三讲:开发一个简单的AJAX聊天室

2006-12-06 03:37 by Jeffrey Zhao, 11337 阅读, 收藏, 编辑
摘要:这次的内容是开发一个AJAX聊天室,目的是让大家略为巩固一下前两次所讲的AJAX常用的基础知识。 阅读全文

讲座展示:TechEd Europe DEV 411 - AJAX Patterns with ASP.NET AJAX(1)

2006-12-04 20:07 by Jeffrey Zhao, 2707 阅读, 收藏, 编辑
摘要:这次我选择的讲座内容,是最近在TechEd 2006 Europe中Andre Snanbria和Jeff Prosise的讲座“AJAX Pattern with ASP.NET AJAX”。这次讲座的主要内容是讲述了使用ASP.NET AJAX开发AJAX应用的最佳实践,在这次讲座里,会对建立轻量级的客户端控件的方法进行深入,讲述了如何优化脚本代码,并提出了如何避免AJAX开发中常见的问题。本篇文章是这次讲座展示的第一篇,讲述了这次讲座的内容概要,并浏览了第一个示例的各个功能。 阅读全文

WPF/E Dev Center出现的过于仓促了

2006-12-04 16:36 by Jeffrey Zhao, 1719 阅读, 收藏, 编辑
摘要:页面上的链接几乎都不能用,而导致的直接后果就是……现在这个Dev Center页面已经被撤下了。微软兄弟们太心急了阿,不过似乎也能说明大家对于WPF/E的急切心情,呵呵,我也拭目以待。:) 阅读全文

文章推荐:ASP.NET AJAX Under the Hood Secrets及其他

2006-12-04 14:53 by Jeffrey Zhao, 2219 阅读, 收藏, 编辑
摘要:ScottGu今天在他的Blog上发了一篇新的文章,提到了PageFlakes.com网站,以及它的核心架构师Omar Al Zabir。当然最重要的还是Omar的文章:《ASP.NET AJAX Under the Hood Secrets》,虽然可能一些已经深入了解ASP.NET AJAX以及Web开发的朋友们会对这篇文章里提到的内容已经比较多的了解,但是我想对于大多数的朋友来说,这篇文章会给我们的ASP.NET AJAX使用,以及Web开发带来一些启示。不过,我产生推荐这篇文章“冲动”其实还有别的原因…… 阅读全文

讲座展示:Live From Redmond: Microsoft AJAX Patterns - Implementing Predictive Fetch with Microsoft ASP.NET 2.0 AJAX Extensions

2006-12-03 23:17 by Jeffrey Zhao, 2184 阅读, 收藏, 编辑
摘要:在AJAX形式的Web开发中存在着一些常用的编程模式。在这个讲座里,Joe会讲述并且使用ASP.NET 2.0 AJAX Extensions做一个简单的演示,用来说明“Predictive Fetch”模式。 阅读全文

InteWidgetTookit现有三个控件的使用方法

2006-12-02 23:07 by Jeffrey Zhao, 3040 阅读, 收藏, 编辑
摘要:在我之前的文章《我的开源项目:InteWidgetTookit》里,对InteWidgetToolkit进行了的简单介绍。现在我已经开始使用CodePlex进行开发和管理,它的地址是:http://www.codeplex.com/InteWidget,欢迎感兴趣的朋友关注。在之前的基础上,我改进了基于Dojo开发Extender所以使用的DojoExtenderControlBase与BaseScripts.js,现在使用它们开发基于Dojo的Extender只需简单地在服务器端编写一个类,使用CustomAttribute进行一些标记即可,几乎不要写任何客户端代码,并且能够在UpdatePanel中执行。现在我基于Dojo简单地开发了三个不同类型的Extender:ColorPalatteExtender、TooltipExtender和SplitContainerExtender。这次我将描述一下它们的使用方式。 阅读全文

建立了一个Google Group:“博客园AJAX技术交流”

2006-11-28 18:17 by Jeffrey Zhao, 1958 阅读, 收藏, 编辑
摘要:地址:http://groups.google.com/group/cnblogs_ajax 邮箱:cnblogs_ajax@googlegroups.com 前几天有朋友建议:“为AJAX或者AJAX培训的QnA建立一个群吧”。但是从以往的经验来说,“群”这个东西很容易就变成了聊天室,似乎效果不佳。因此最后经过一些朋友的建议,我也想了一下,最后决定申请了一个Google Group。它的好处就是您可以把它当作一个Mail List使用,如果有新的信息您就会收到邮件。而且如果您怕邮件太多的话,也可以选择一天收到一封“集合”邮件等等,还是比较灵活的。如果您有任何疑问,或者想讨论任何AJAX相关的话题,都可以发送邮件至cnblogs_ajax@googlegroups.com。 阅读全文

我的开源项目:InteWidgetTookit

2006-11-27 20:03 by Jeffrey Zhao, 4208 阅读, 收藏, 编辑
摘要:“InteWidgetToolkit”很明显是一个Toolkit,也就是工具包。“Inte”是“Integrate”的缩略。而Widget的含义则是“小工具”。其实这个名字的本意是“一个集成第三方脚本类库中Widget的ASP.NET AJAX工具包”,但是目前的决定是“一个集成第三方脚本类库的ASP.NET工具包,提供了各种Widget”。InteWidgetToolkit的目的是提供各种控件,目前想法是以Extender的方式为主,但是不排除今后会加入普通WebControl的类型。目前第三方脚本控件暂且定位在Dojo和Yahoo! UI Library。 阅读全文

我的一些看法:关于AJAX框架的比较

2006-11-27 15:39 by Jeffrey Zhao, 6762 阅读, 收藏, 编辑
摘要:Dflying兄最近在对于ASP.NET的AJAX实现进行一基于数据传输大小的比较,图文并茂,颇能够在体现某些方面的问题。这不禁使我我对于这方面也进行了一些思索,这里就说一下我的看法。 阅读全文

AJAX培训第二讲:使用AJAX框架(下)

2006-11-27 02:51 by Jeffrey Zhao, 6980 阅读, 收藏, 编辑
摘要:“AJAX培训第二讲:使用AJAX框架”现在拆成了两部分,现在发布是第一部分,探讨了AJAX框架相关内容,并给出了一些最简单的例子。 阅读全文

AJAX培训第二讲:使用AJAX框架(上)

2006-11-25 11:41 by Jeffrey Zhao, 7234 阅读, 收藏, 编辑
摘要:“AJAX培训第二讲:使用AJAX框架”现在拆成了两部分,现在发布是第一部分,探讨了ASP.NET 2.0中的AJAX能力。而第二部分我还在重新修补和录制,大概会在周一发布。 阅读全文

ASP.NET AJAX Control Toolkit Update

2006-11-22 17:12 by Jeffrey Zhao, 4214 阅读, 收藏, 编辑
摘要:就在不久之前,ASP.NET AJAX Control Toolkit发布了Release 61121,Release 61121解决了用户反馈中一些比较大的问题。 阅读全文

讲座展示:TechEd Europe DEV344 - ASP.NET AJAX Control Toolkit(下)

2006-11-18 19:18 by Jeffrey Zhao, 2453 阅读, 收藏, 编辑
摘要:此次讲座分为两部分:“ASP.NET AJAX Control Toolkit介绍和使用”以及“开发一个Extender控件”。本文将对于该讲座的第二部分进行讲述,并且对其第二个演示的剩余部分进行分析。 阅读全文

讲座展示:TechEd Europe DEV344 - ASP.NET AJAX Control Toolkit(中)

2006-11-17 18:17 by Jeffrey Zhao, 2534 阅读, 收藏, 编辑
摘要:此次讲座分为两部分:“ASP.NET AJAX Control Toolkit介绍和使用”以及“开发一个Extender控件”。本文将对于该讲座的第二部分进行讲述,并且对其第二个演示的第一个部分进行分析。 阅读全文

讲座展示:TechEd Europe DEV344 - ASP.NET AJAX Control Toolkit(上)

2006-11-15 18:23 by Jeffrey Zhao, 5160 阅读, 收藏, 编辑
摘要:这次我选择的讲座内容是最近在TechEd 2006 Europe中Shawn Burke的讲座“ASP.NET AJAX Control Toolkit Unleashed: Creating Rich Client-Side Controls and Components”。Shawn Burke是微软.NET Developer Platform总监。   此次讲座的内容主要是对于ASP.NET AJAX Control Toolkit进行简单的介绍,展示了Extender控件是如何帮助ASP.NET开发人员简单地将丰富的用户体验集成到他们的Web应用程序中。在这次讲座里将看到应该如何在您的应用中使用ASP.NET AJAX Control Toolkit中的组件,并且了解开发人员是如何方便地开发一个APS.NET AJAX Extender的。   此次讲座分为两部分:“ASP.NET AJAX Control Toolkit介绍和使用”以及“开发一个Extender控件”。本文将对于该讲座的第一部分进行讲述,并且对其第一个演示进行分析。 阅读全文

深入Atlas系列:Web Sevices Access in Atlas示例(7) - 编写JavaScriptConverter处理含有循环引用的类型

2006-11-13 16:48 by Jeffrey Zhao, 2952 阅读, 收藏, 编辑
摘要:有时候在Web Service中会需要使用到比较复杂的类型,它们的特征往往都是含用循环引用,这样的对象如果交给ASP.NET AJAX中默认的序列化方式来处理则会抛出异常,大家经常遇到的“DataTable”问题正是由此引起的。关于这一点,ASP.NET AJAX自然提供了解决方法,在这里“官方”的解决方案就是JavaScriptConverter,它可以让开发人员自定义特定类型的序列化能力。 阅读全文

深入Atlas系列:综合示例(1) - 调用服务器端方法时直接获得客户端具体类型

2006-11-11 23:04 by Jeffrey Zhao, 3873 阅读, 收藏, 编辑
摘要:在使用ASP.NET AJAX时,大家对于返回服务器端的复杂类型的情况经常会遇到问题。Dflying兄写了一篇文章来说明在如何在客户端得到Sys.Preview.Data.DataTable对象的文章,但是这种方法需要在客户端进行Sys.Preview.Data.DataTable的构造,那么我们该如何直接获得这个对象呢?再进一步,我们该如何直接获得客户端某种特定格式的对象呢?本篇文章给出了一个解决方案,事实上,这个扩展的能力还不止如此…… 阅读全文

深入Atlas系列:Web Sevices Access in Atlas示例(6) - 在客户端隐藏服务器端类型信息

2006-11-11 01:37 by Jeffrey Zhao, 2028 阅读, 收藏, 编辑
摘要:如果要在客户端指定服务器端Web Service方法所接收的参数类型,就必须在客户端通过“__type”来指定,但是这就暴露了服务器端的具体类型了,这可不太好。现在我们就来看一下应该如何解决这个问题。 阅读全文

深入Atlas系列:探究序列化与反序列化能力(下) - JavaScriptSerializer

2006-11-10 00:39 by Jeffrey Zhao, 6697 阅读, 收藏, 编辑
摘要:在ASP.NET AJAX中,客户端的序列化与反序列能力由Sys.Serialization.JavaScriptSerializer类的serialize和deserialize两个静态方法提供。在服务器端,所有的序列化与反序列化能力,包括类型之间的转换,对于开发人员来说都是由JavaScriptSerializer类的几个方法实现的。从前一片文章里我们已经知道了两个辅助的类:JavaScriptTypeResolver和JavaScriptConverter,他们的作用分别是“映射类与类标识”,以及“提供特定类的序列化与反序列化能力”。在某些情况下,我们还是需要使用JavaScriptSerializer类的方法来操作一个类型,例如使用JavaScriptConverter来自定义特定类的序列化或者反序列化,就需要使用JavaScriptSerializer类的方法,因此我们这次就详细看一下这个类的能力。 阅读全文

深入Atlas系列 - 浅析ASP.NET Beta 2中令人疑惑的脚本引入方式

2006-11-08 02:36 by Jeffrey Zhao, 4559 阅读, 收藏, 编辑
摘要:似乎已经有不少朋友在作了ASP.NET AJAX Beta 1到Beta 2的转移之后遇到了这样的问题:如果使用了ScriptManager引入了自定义的JavaScript脚本文件后会发生JavaScript错误。本文简单讨论了引发这个问题的原因,解决方案以及注意事项。 阅读全文

AJAX培训第一讲:AJAX基础

2006-11-07 20:45 by Jeffrey Zhao, 23311 阅读, 收藏, 编辑
摘要:经过了5个小时的准备,10多个小时的录制和剪辑,我终于将第一次AJAX培训的内容做完了。录一次讲座真的是一件费神费时的事情,我也深切感受到了天轰穿兄录了数十次讲座有多么不容易。这是我第一次录制讲座,所以经验有些不足,而且对着屏幕一个人傻傻地说话总是不如对着观众说话,在语气上也略显单调。虽然我已经极力yy正在为数十人作讲座的情形,但是似乎效果不甚理想。另外不知道是什么原因,录下来的声音总是不像我的原声,听上去也有些沉闷,请大家多多包涵了。如果大家对于讲座的方式上有什么意见或者建议的话,请回复在这里,您的支持能够让我们的工作越做越好。如果大家对于讲座的内容有任何疑问,请在Q & A专用文章里进行提问,当然如果您有其它任何疑问的话,也能在那里提出,我会尽快为您解答。 阅读全文

深入Atlas系列:探究序列化与反序列化能力(上) - 客户端支持,JavaScriptTypeResolver与JavaScriptConverter

2006-11-06 23:41 by Jeffrey Zhao, 4082 阅读, 收藏, 编辑
摘要:在ASP.NET AJAX中是使用了JSON作为客户端与服务器端传递对象信息的方式。因此,在ASP.NET AJAX的客户端与服务器端均提供了序列化与反序列化的能力。了解这些内容的使用方法,可以说是使用与扩展ASP.NET AJAX所必须的能力。在这两篇文章里,我们就来看一下ASP.NET AJAX中的序列化与反序列化的能力。 阅读全文

深入Atlas系列:探究Application Services(3) - 自定义客户端Profile Service支持

2006-11-05 21:32 by Jeffrey Zhao, 2518 阅读, 收藏, 编辑
摘要:  如果不能在客户端进行自定义的话,Profile Service的自定义能力还是远远不够的。虽然Profile Service没有提供一种“官方”的客户端自定义支持,不过事实上“自定义”能力“天然”地存在与客户端里。为什么?因为整个客户端是由JavaScript实现的,这种灵活的语言使得我们能够在一定程度上自由地修改客户端的行为。 阅读全文

深入Atlas系列:探究Application Services(2) - 自定义服务器端Profile Service支持

2006-11-04 04:09 by Jeffrey Zhao, 1904 阅读, 收藏, 编辑
摘要:在上一篇文章中,我们讨论了使用ASP.NET AJAX默认的Profile Service。一般来说,它已经能够迎合大多数应用的需要了。不过除此之外,ASP.NET AJAX还提供了让我们自定义Profile Service的机制。 阅读全文

深入Atlas系列:探究Application Services(1) - Profile Service分析与使用

2006-11-02 23:43 by Jeffrey Zhao, 2273 阅读, 收藏, 编辑
摘要:ASP.NET AJAX提供了Profile Service,允许开发人员异步地从服务器端访问Profile信息。从RTM开始,客户端的Profile Service还提供了对于Profile Group的支持,因此可以说已经相当成熟了。那么对于Profile Service的细节,是否大家都了解了呢?从ScriptManager的使用上来看,ProfileService是能够扩展的,那么应该如何扩展呢?细心的朋友们应该也发现了,在web.config中也增加了对于Profile Service的配置,那么这些配置应该如何使用呢? 阅读全文

深入Atlas系列:Web Sevices Access in Atlas(8) - RTM中可叹的Web Service Proxy

2006-11-01 17:39 by Jeffrey Zhao, 1915 阅读, 收藏, 编辑
摘要:使用Web Service Proxy应该是使用ASP.NET AJAX访问Web Service最常用的方法了。服务器端会根据ScriptManager中添加的Service引用而对于Web Service类进行分析,并生成相应的客户端脚本。这样开发人员就能在客户端方便而且直观地访问Web Services方法了。这是ASP.NET中很重要的功能。从官方文档上看来,CTP和RTM似乎在脚本使用这方面没有很大的改变,只要在服务器端将一些CustomAttribute改变一下就可以了。的确没错,在使用方式上只有这点细微改变,但是事实上,从生成脚本本身来说,CTP和RTM的做法大相径庭。 阅读全文

深入Atlas系列:Web Sevices Access in Atlas(7) - RTM中的客户端支持

2006-10-30 16:46 by Jeffrey Zhao, 2596 阅读, 收藏, 编辑
摘要:在RTM版本中,客户端访问Web Services的基础类库发生了一些改变,并直接影响到了它们的使用方式。对于自己写ASP.NET AJAX组件(例如ExtenderControl)的朋友们来说,了解这部分改变是非常重要的。 阅读全文

深入Atlas系列:客户端网络访问基础结构示例(1) - 编写并使用自定义的WebRequestExecutor

2006-10-30 03:05 by Jeffrey Zhao, 2842 阅读, 收藏, 编辑
摘要:WebRequestExecutor是ASP.NET AJAX网络访问基础结构的唯一修改点。理论上,我们可以使用自定义的WebRequestExecutor来取代默认的XMLHttpExecutor。我们要做的,其实只是开发一个继承于Sys.Net.WebRequestExecutor类。不过事实上,在实际使用中,Sys.Net.XMLHttpExecutor已经足够用了,真的要自定义,也只需继承这个类即可。就像接下去的例子一样。 阅读全文

深入Atlas系列:客户端网络访问基础结构(下) - WebRequestExecutor和XMLHttpExecutor

2006-10-29 05:10 by Jeffrey Zhao, 2398 阅读, 收藏, 编辑
摘要:正如前一篇文章所说的那样,WebRequestExecutor是客户端网络访问的基础结构的唯一扩展点,而XMLHttpExecutor是其默认实现。在ASP.NET AJAX中,开发人员能够将自定义的WebRequestExecutor子类设为默认的Executor,也可以为某一个WebRequest指定一个特定的Executor。虽然一般来说XMLHttpExecutor已经足够大多数应用,但是既然ASP.NET AJAX提供了这个功能,我们也根据默认的类进行一下这方面的学习。 阅读全文

AJAX讲座内容提纲(意见征询)

2006-10-29 00:05 by Jeffrey Zhao, 3232 阅读, 收藏, 编辑
摘要:AJAX作为一个“新生事物”已经被几乎所有人接受了。大家对于AJAX应该也有了一定的学习,因此我总是感觉AJAX的东西容易让人听腻,想做好不容易。下面是我初步定下来的提纲,希望大家能多提一些意见和建议,我会随时更新和细化这些内容。 阅读全文

深入Atlas系列:客户端网络访问基础结构(上) - WebRequest的工作流程与生命周期

2006-10-27 00:50 by Jeffrey Zhao, 3582 阅读, 收藏, 编辑
摘要:ASP.NET AJAX的许多功能会要求异步地访问服务器端,例如访问Web Services,Authentication/Profile Services(事实上和访问Web Services是相同的机制)和Partial Rendering。在ASP.NET AJAX中,所有的这些访问都是通过一个网络访问的基础结构来完成的,无一例外。 阅读全文

深入Atlas系列:客户端代码编写规则分析与指南

2006-10-25 18:29 by Jeffrey Zhao, 3795 阅读, 收藏, 编辑
摘要:在RTM版本中,我们可以发现ASP.NET AJAX的客户端脚本引入了许多规则:有方法注释规则,有参数验证规则,而且对于Debug和Release模式下的脚本代码,甚至添加在程序集里的方式,也有相当严禁的规则。如果我们想要编写真正规范和严谨的代码或组件,了解这些规则是非常必要的。有了这些规则,用户在使用Debug模式进行开发和调试时可以得到更好的提示(比如Call Stack),下一版本的Visual Studio“Orcas”也会根据这些规则提供良好的IntelliSense功能。另外,了解这些规则也有利于帮助开发人员阅读和理解客户端代码,这不也是我写“深入Atlas系列”的目的吗?在这片文章里,我将使用ASP.NET AJAX的脚本代码为范例,对开发规则进行一番描述。在某些时候也会对客户端和服务器端的部分代码进行简单的分析。 阅读全文

[意见征集]AJAX培训

2006-10-25 00:30 by Jeffrey Zhao, 3184 阅读, 收藏, 编辑
摘要:承蒙厚爱,经过培训团队的讨论之后,决定将由Dflying Chen和我负责AJAX部分的培训。初期培训的方式是录制视频讲座并提供下载,等条件成熟后会逐渐转向在线培训的方式。  培训的内容为AJAX,将着重讲述AJAX在ASP.NET中的应用。初期的侧重点将是AJAX基础部分的讲解,并逐渐过渡到微软公司的ASP.NET AJAX框架。虽然会由我们来决定讲座的内容与提纲,但是由于我们的目的是服务于各位... 阅读全文

为ASP.NET AJAX 1.0 Beta补充trace和dump功能

2006-10-24 11:01 by Jeffrey Zhao, 2355 阅读, 收藏, 编辑
摘要:ASP.NET 1.0 Beta将客户端的Debug能力大大减弱了,window.debug对象目前只剩下了fail和trace功能,这让以客户端开发为中心的开发人员觉得非常不满。本文为RTM增加了CTP的trace和dump能力。 阅读全文

在虚拟主机上部署ASP.NET AJAX 1.0 Beta的程序集

2006-10-23 17:46 by Jeffrey Zhao, 3832 阅读, 收藏, 编辑
摘要:说明了在虚拟主机中部署ASP.NET AJAX 1.0 Beta的程序集的方法,并提供模版下载。 阅读全文

从Atlas到Microsoft ASP.NET AJAX(9) - Using the Value-add Scripts

2006-10-23 02:48 by Jeffrey Zhao, 3786 阅读, 收藏, 编辑
摘要:Discussed the usage of the Value-add Scripts 阅读全文

从Atlas到Microsoft ASP.NET AJAX(8) - UpdatePanel Control

2006-10-22 21:17 by Jeffrey Zhao, 4325 阅读, 收藏, 编辑
摘要:对于UpdatePanel控件的使用是ASP.NET AJAX Extentions的重要部分。我们收到了关于它和UpdateProgress控件的大量用户反馈。为了增强部分刷新的功能我们作了多处修改,并加强了UpdatePanel对于控件的兼容性。我们也为异步PoskBack实现了一个丰富的事件模型,这样您就可以在客户端响应它们并对页面更新提供额外操作了。 阅读全文

从Atlas到Microsoft ASP.NET AJAX(7) - ScriptManager and ScriptManagerProxy Controls, Extender Controls

2006-10-22 12:18 by Jeffrey Zhao, 4116 阅读, 收藏, 编辑
摘要:Discussed ScriptManager, ScriptManagerProxy and Extender Controls 阅读全文

从Atlas到Microsoft ASP.NET AJAX(6) - Networking, Application Services

2006-10-22 01:47 by Jeffrey Zhao, 2722 阅读, 收藏, 编辑
摘要:为了简化Web Services方法调用,客户端代理的设计被改变了,它在方法调用和回调函数设置方面提供了强大的灵活性。另外,在RTM版本中,客户端的Authentication服务和Profile服务使用了一个简化的并且更为灵活的设计。这个设计与客户端访问Web Services方法保持了统一。 阅读全文

从Atlas到Microsoft ASP.NET AJAX(5) - Higher-level Component Framework

2006-10-21 21:32 by Jeffrey Zhao, 2794 阅读, 收藏, 编辑
摘要:高级组件的功能已经根据客户反馈,性能等诸多因素进行了修改。 阅读全文

从Atlas到Microsoft ASP.NET AJAX(4) - Browser Compatibility, Building Debug and Release Scripts, Defining Type Descriptors

2006-10-21 17:15 by Jeffrey Zhao, 2925 阅读, 收藏, 编辑
摘要:Discussed the differences of the following aspects between CTP and RTM release of Microsoft ASP.NET AJAX: 1、Browser Compatibility 2、Building Debug and Release Scripts 3、Defining Type Descriptors 阅读全文

从Atlas到Microsoft ASP.NET AJAX(3) - Class and Type Definition, Reflection APIs

2006-10-21 15:00 by Jeffrey Zhao, 3234 阅读, 收藏, 编辑
摘要:在CTP版本中,您能创建各种各样的类型,例如类,接口,枚举和标记(flag)。这些功能在RTM版本中被改变了。 阅读全文

从Atlas到Microsoft ASP.NET AJAX(2) - Class、JavaScript Extensions (Client BCL)

2006-10-21 13:06 by Jeffrey Zhao, 3611 阅读, 收藏, 编辑
摘要:在CTP release中,“类”和类型是使用closure定义的,在类的构造函数中生效(尽管这些类不能以.NET Framework中的类的方式理解,为了方便,我们在这里还是将它们称之为类)。在RTM中,我们使用了prototype模型。另外,CTP版本包括了对于JavaScript内置对象的一系列扩展,这些会继续保留在RTM版本中。然而,它们被重新设计以避免与其它AJAX框架的潜在冲突。 阅读全文

从Atlas到Microsoft ASP.NET AJAX(1) - Overview of Major Changes

2006-10-21 04:27 by Jeffrey Zhao, 5213 阅读, 收藏, 编辑
摘要:ASP.NET 2.0 AJAX Extensions对于Atlas来说,不仅仅是一个名称上的改变,它从基础结构实现,到客户端与服务器端的应用,都发生了翻天覆地的变化。相对于Atlas来说,似乎ASP.NET 2.0 AJAX Extentions在各个方面都有了长足的进步。一些原有的诟病与硬伤得到了改善,可以说,相比于以前的Atlas,它成熟了。 阅读全文

从Atlas到Microsoft ASP.NET AJAX - 序

2006-10-20 23:55 by Jeffrey Zhao, 4644 阅读, 收藏, 编辑
摘要:从现在开始,我们来“从Atlas到Microsoft ASP.NET AJAX”! 阅读全文

Microsoft ASP.NET AJAX的RTM Release在一定程度上更像是一个晴天霹雳

2006-10-20 19:25 by Jeffrey Zhao, 3084 阅读, 收藏, 编辑
摘要:即使我已经将Atlas的代码看了大半,即使我已经准备好了后面几片“深入Atlas系列”的文章,但是不得不承认,它们几乎没有什么用了。粗粗看了一遍客户端代码和一半左右的文档,它已经不是我所认识的Atlas了。它对于我来说又成了一个陌生的东西。这次的Release,我认为,从一个根本的角度改变了原来的Atlas,从客户端的对象构造的基础(closure变成了prototype)... 阅读全文

Atlas中有趣且无用的功能:Sys.UI.Window类

2006-10-20 16:19 by Jeffrey Zhao, 1617 阅读, 收藏, 编辑
摘要:Atlas的客户端代码中有着一个有趣的类,就是Sys.UI.Window。这个类的功能非常简单,只是对于Javascript功能的封装,用于提供各种提示框。 阅读全文

想计划做一套Atlas的控件集合

2006-10-20 15:14 by Jeffrey Zhao, 1476 阅读, 收藏, 编辑
摘要:一个设想,我们可以有一套自己的控件库。参与Atlas Control Toolkit的开发比较麻烦,不如我们自己做一套。 阅读全文

出于对Atlas自带AutoCompleteBehavior的不满,自定义了一个支持模版的AutoCompleteBehavior

2006-10-20 03:05 by Jeffrey Zhao, 2720 阅读, 收藏, 编辑
摘要:AutoCompleteBehavior只能作出最简单的提示,其它什么功能也没有。无法设置样式,无法自定义信息,这就是我们想要的功能吗?这就是所谓的“桌面级”体验吗?很显然,这远远不够。豪不夸张地说,我是怀着对于AutoCompleteBehavior的强烈不满(其实这是前几天我在向别人介绍Atlas时被人Challenge的结果),决定自定义一个加强的AutoCompleteBehavior,不过其实唯一的增强也就是提供了用户自定义模版的能力。 阅读全文

深入Atlas系列:Web Sevices Access in Atlas示例(5) - 自定义TypeConverter把基础类型转换为复杂类型

2006-10-19 11:40 by Jeffrey Zhao, 1734 阅读, 收藏, 编辑
摘要:  在上一个示例中我们了解到如何通过HTTP GET来访问Web Services方法。很显然,使用HTTP GET依靠Query String传递参数,于是在客户端拿到的总是基本数据类型String。幸好,在Atlas中,对于基础类型的参数,如果遇到了一个字符串,则会设法将其转换成一个合适的类型。因此,在使用HTTP GET方法传递参数时,在Web Services方法里能够使用个中各样的基础类型。但是,这显然远远不够,Atlas也不会将这个问题置之不理。在Atlas中,自提供了一套自定义机制可以将基础类型转换为复杂类型。 本文通过示例演示了如何通过自定义TypeConverter来提供简单类型到复杂类型的转换。 阅读全文

深入Atlas系列:Web Sevices Access in Atlas示例(4) - 使用HTTP GET调用Web Services方法

2006-10-18 17:54 by Jeffrey Zhao, 1855 阅读, 收藏, 编辑
摘要:在之前的例子里,由于Atlas客户端在调用Web Services方法时总是使用了Sys.Net.ServiceMethod类,因此始终使用了HTTP POST方法与服务器端进行交互。POST方法有其好处,不过GET方法也自有其价值。本文通过示例解释了如何使一个Web Services方法能够通过HTTP GET调用,并且如何调用它。 阅读全文

深入Atlas系列:Web Sevices Access in Atlas示例(3) - 在Web Services方法中使用多态

2006-10-18 11:06 by Jeffrey Zhao, 1523 阅读, 收藏, 编辑
摘要:在Web Services方法中,我们往往使用的都是一个具体类型的参数。这个参数一般就是一个数据对象,所有的功能基本上只是为了存放数据。虽然这对于应用来说一般已经足够,我们大量使用了这样的Web Services,不也过得好好的吗?但是,在这一点上实在太不够面向对象了。本文提供了示例演示如何在客户端选择传递给Web Service参数的具体类型,以达到一定程度上多态的效果。 阅读全文

似乎有关Atlas的书也渐渐多起来了

2006-10-18 00:39 by Jeffrey Zhao, 2474 阅读, 收藏, 编辑
摘要:在浏览Amazon上的书时,发现了两本新出的有关Atlas的书籍。不过简单看了看内容,似乎还是没有什么新意。哎,Atlas难道说来说去都只有那些吗? 阅读全文

深入Atlas系列:Web Sevices Access in Atlas示例(2) - 自定义JavaScriptConverter处理循环引用对象

2006-10-17 13:47 by Jeffrey Zhao, 1861 阅读, 收藏, 编辑
摘要:在以前的文章中我曾经举了一个简单例子,如果一个对象存在着循环引用,那么无论在客户端还是服务器端都会出现异常状况。这篇文章将通过示例来解释如何使用自定义JavaScriptConverter来解决这个问题。 阅读全文

深入Atlas系列:Web Sevices Access in Atlas(6) - 对于复杂数据类型的支持(下)

2006-10-17 00:56 by Jeffrey Zhao, 1565 阅读, 收藏, 编辑
摘要:将Atlas访问Web Services方法对于复杂类型的支持讨论完毕,在之后的文章中将通过示例着重讲解一些有用的功能和在文章中提到的扩展。   本文分析了Web Services方法寻找自身所支持的复杂类型的方式,以及将对象序列化输出的实现和注意点。 阅读全文

“深入Atlas系列”文章导读

2006-10-16 13:40 by Jeffrey Zhao, 8246 阅读, 收藏, 编辑
摘要:“深入Atlas系列”的路还很长,还有许许多多的东西可以分析与挖掘。这个“文章导读”既是对这个系列文章的一种整理,也是对我坚持完成这一系列的一个自我鼓励与鞭策。   从现在开始,我决定从现在开始将“深入Atlas系列”的文章分为“分析”与“示例”两部分。“分析”部分文章可能会相对比较“枯燥”,因为它几乎完全就是从实现角度对Atlas的原理进行剖析,附带一些说明性的简单示例。但是这才是我精力花费最大的地方。这部分文章都是“示例”部分的实现依据。“示例”部分文章使用了“分析”部分所得到的结论,然后设计出来的Atlas使用示例。它们用一种比较直观的方式对一些复杂或高级的问题提供解决方案。   既然是“深入Atlas系列”,我会尽可能保持这个系列内容的“深入”性,讨论的内容也尽可能地避免流于表面或者已有的文档和示例,因此这对我的要求也会相当的高。请朋友们有也不要吝啬您的意见、建议和疑问。你们的支持是对我最大的鼓励。如果希望深入了解Atlas的哪个部分,也请尽管告诉我。 阅读全文

深入Atlas系列:Web Sevices Access in Atlas(5) - 对于复杂数据类型的支持(中)

2006-10-15 21:43 by Jeffrey Zhao, 1395 阅读, 收藏, 编辑
摘要:这篇文章继续讨论了Atlas访问Web Services方法时对于复杂类型的支持,并从实现角度分析了可以说是此中最重要的那部分代码。这部分内容是扩展Atlas对于复杂类型支持的依据,由此可以得出Atlas的一些强大之处。 阅读全文

深入Atlas系列:Web Sevices Access in Atlas(4) - 对于复杂数据类型的支持(上)

2006-10-15 01:53 by Jeffrey Zhao, 2580 阅读, 收藏, 编辑
摘要:Atlas访问Web Serivces方法对于复杂数据类型的支持并不如前几片文章所描述的那么简单。从这篇文章开始,我将从实现角度详细分析Atlas访问Web Services方法是如何支持复杂数据类型的,并最终对于一些常见的情况给出解决方案。 阅读全文

VS 2005中文版用户请谨慎使用我提供的Atlas Xml Scripts Intellisense方法

2006-10-12 16:52 by Jeffrey Zhao, 1920 阅读, 收藏, 编辑
摘要:VS 2005中文版用户请谨慎使用我的文章《为VS.NET 2005增加Atlas Scripts的代码提示功能》所提供的Atlas Xml Scripts Intellisense方法。有少数使用VS 2005中文版的朋友在使用了我提供的Intellisense方法后,出现了HTML编辑器“无法加载此属性页”的的错误。而且在删除了Schma文件和注册表项之后错误依旧。目前... 阅读全文

补充部分官方文档里没有的Client Library以及代码提示Schema更新(三)

2006-10-12 14:58 by Jeffrey Zhao, 548 阅读, 收藏, 编辑
摘要:配合《深入Atlas系列:Web Sevices Access in Atlas(4) - 特别的访问方式》,补充了对于的提示Schema。 阅读全文

深入Atlas系列:Web Sevices Access in Atlas示例(1) - 特别的访问方式

2006-10-12 14:32 by Jeffrey Zhao, 2333 阅读, 收藏, 编辑
摘要:本文从实现角度讨论了使用Sys.Net.ServiceMethod.invoke以及Declarative Syntax调用Web Services的方法。并通过示例指出了Atlas现有的组件的不足并提供了改进办法、源文件以及示例。 本文提供了三个示例: 1、使用Sys.Net.ServiceMethod.invoke静态方法访问Web Services 2、使用Declarative Syntax访问Web Services方法 3、使用改进的Declarative Syntax访问Web Services方法 阅读全文

深入Atlas系列:Web Sevices Access in Atlas(3) - 服务器端支持(下)

2006-10-11 15:22 by Jeffrey Zhao, 1975 阅读, 收藏, 编辑
摘要:在上一篇文章里,我们分析了一部分服务器端的代码。在这篇文章里,我将完成服务器端代码分析之外,另外提供了两个范例让大家参考: 1、在Web Services方法中使用复杂的数据类型 2、使用Web Services将对象序列化成XML并使用客户端XSLTView空间输出信息 阅读全文

深入Atlas系列:Web Sevices Access in Atlas(2) - 服务器端支持(上)

2006-10-10 19:37 by Jeffrey Zhao, 2001 阅读, 收藏, 编辑
摘要:在上一片文章里,我们分析讨论了使用Atlas在进行AJAX访问Web Services所用的客户端代码。但是如果要实现这一功能,很显然还离不开服务器端的支持。在这篇文章里,我们就来讨论这一点。 阅读全文

深入Atlas系列:Web Sevices Access in Atlas(1) - 客户端支持

2006-10-10 02:43 by Jeffrey Zhao, 2980 阅读, 收藏, 编辑
摘要:  Atlas提供了强大而灵活的服务器端Web Services访问能力。这对于客户端AJAX开发提供了绝好的条件,这几乎也是任何AJAX框架必备的功能。因为只要有了它,就能轻松地以AJAX方式与服务器端进行交互,而其他多样的页面操作自然可以由开发人员尽情开发。对于部分喜欢自己动手的开发人员来说,这甚至是他们仅仅需要的支持。   从这篇文章开始,我会从实现角度剖析Atlas对于Web Services的支持,希望能够帮助大家更深入地理解,更灵活地使用Atlas提供的这一功能。 阅读全文

[E-book Download] - OReilly Programming Atlas Sep 2006

2006-10-08 16:59 by Jeffrey Zhao, 1989 阅读, 收藏, 编辑
摘要:本电子书仅提供研究和学习使用,请勿用于商业目的。如果产生任何版权纠纷,本人会将其立即撤除。 阅读全文

不看不知道,一看吓一跳,Atlas中有些Bug还真让人无语。

2006-10-06 02:17 by Jeffrey Zhao, 2295 阅读, 收藏, 编辑
摘要:阅读了Atlas的代码才发现,Atlas中有些Bug真是让人无话可说。除去以前提到过的有些类成员在重载时奇怪的代码之外,现在在阅读IEDragDropManager时也发现了点有趣的Bug。 阅读全文

使用Atlas创建自己的Client Control

2006-10-04 22:54 by Jeffrey Zhao, 2445 阅读, 收藏, 编辑
摘要:Atlas客户端脚本提供了数个继承于Sys.UI.Control的类,从简单如Sys.UI.Button,到复杂如Sys.UI.Data.ListView,在一定程度上方便了开发人员,另外可以使用Declarative Syntax也可谓一大进步。但是一般仅仅使用Atlas提供的那些类是远远不够的,开发人员必须自行使用Atlas进行扩展,并且将自己的扩展融入到Atlas模型中去。 阅读全文

补充部分官方文档里没有的Client Library以及代码提示Schema更新(二)

2006-09-29 15:33 by Jeffrey Zhao, 1675 阅读, 收藏, 编辑
摘要:这次补充了所有的Data Access相关控件,现在似乎Atlas.js中最常用的Tag都已经写进了Schema。这次更新的Tag有: “<itemView />”、“<listView />”、“<dataSource />”、“<dataView />”、“<dataNavigator />”、“<xmlDataSource />”、“<xsltView />”、“<sortBehavior />”和“<propertyFilter />” 阅读全文

Sys.UI.Data.DataNavigator与Sys.UI.Data.SortBehavior

2006-09-28 16:28 by Jeffrey Zhao, 1831 阅读, 收藏, 编辑
摘要:阅读了Atlas代码之后,出现了很多想法。现在对于Sys.UI.Data.DataNavigator进行简单分析,并对它的设计产生了质疑,并提出了Sys.UI.Data.DataNavigator的一个bug,即使在功能上并无体现。 阅读全文

另一种Atlas Scripts Intellisense的方法以及对比与分析

2006-09-27 15:21 by Jeffrey Zhao, 1676 阅读, 收藏, 编辑
摘要:这是另一种Intellisense做法,可能会对我们使用Atlas Scripts的方式有所启发。 阅读全文

FloatingBehavior补遗:Location属性与move事件

2006-09-26 20:51 by Jeffrey Zhao, 1478 阅读, 收藏, 编辑
摘要:  FloatingBehavior在官方文档中的例子似乎只有对其最简单使用方式的介绍,却没有对其Location属性和move事件的说明。虽然它们非常简单,我想可能还是需要了解一下的。FloatingBehavior的Class Library在本人前面的文章《补充部分官方文档里没有的Client Library以及代码提示Schema更新》中有说明。 阅读全文

补充部分官方文档里没有的Client Library以及代码提示Schema更新(一)

2006-09-26 20:49 by Jeffrey Zhao, 1656 阅读, 收藏, 编辑
摘要:  为了保证Intelligence Schema的正确性,不得不仔细地去挖掘文档上没有描述的特性,最好的方式自然是阅读它的代码,似乎进展还算顺利。新增支持的Tag为validator相关和floatingBehavior。具体为“<requiredFieldValidator />”、“<typeValidator />”、“<rangeValidator />”、“<regexValidator />”、“<customValidator />”、“<validationErrorLabel />”、“<validationGroupt />”和“<floatingBehavior />”。 阅读全文

为VS.NET 2005增加Atlas Scripts的代码提示功能

2006-09-25 17:28 by Jeffrey Zhao, 3964 阅读, 收藏, 编辑
摘要:  一直在不遗余力地向周围地人传播Atlas的Declarative Syntax,却总是得到“太难编写”的回答。最近有一次无论如何也找不出一个问题,最终发现是一个拼写错误,愤愤之余,无奈之下,只得设法为VS增加为Atlas的代码提示功能。苦于缺乏相关资料,MSDN上尽是如何为VS.NET 2003下Web Control增加客户端提示的文章。不过幸运地是,这些文章也给了我提示和方向。摸索数小时之后总算有所门道,不敢独享,略有小成。虽然期间也曾遇到过一些头疼事,例如VS.NET编辑器无法区分HTML的<select />和Atlas Scripts里的<select />,幸运的是最终找到了解决办法。 阅读全文

本地化与Atlas对于本地化的支持

2006-09-22 19:18 by Jeffrey Zhao, 2991 阅读, 收藏, 编辑
摘要:周三我参与的项目的Beta版终于发布了,这个项目是对今年2月已经在美国上线的产品进行本地化工作。很奇怪,在Production环境中使用下来感觉比想象中要好很多,忐忑的心情放轻松了不少。虽然我那个项目没有用到Atlas,不过也就趁这个机会,简单讲一下本地化和Atlas对于本地化的支持吧。 本文分以下四部分: 一、什么是本地化 二、Atlas对于本地化的支持 三、为Atlas的本地化的支持自定义Culture Detection规则 四、更好地控制Atlas本地化支持 阅读全文

一个我在研究Atlas Control Toolkit时做的尝试:ImageGalleryExtender

2006-09-21 07:37 by Jeffrey Zhao, 2328 阅读, 收藏, 编辑
摘要:ImageGalleryExtender是我在研究Atlas Control Toolkit代码时的一个尝试。这个Extender的作用是能够轻松地制作一个相册浏览的功能。 阅读全文

和之前的版本相比,昨天Release的Atlas Control Toolkit变化不可谓不大

2006-09-20 02:43 by Jeffrey Zhao, 2417 阅读, 收藏, 编辑
摘要:姑且不论增加了4个新的控件,姑且不论Accordion控件的代码和使用都发生了很大变化,这次Atlas Control Toolkit的更新,改变了一些非常基础的地方。 阅读全文

修补AJAX应用中Back/Forward Button和Bookmark失效的问题

2006-09-14 19:48 by Jeffrey Zhao, 3096 阅读, 收藏, 编辑
摘要:  从AJAX诞生至今,就存在着Back/Forward Button和bookmark失效的问题,我以前一般提倡,一个好的AJAX应用应该不让用户有点击“Back/Forward”的想法,并且使用某种方式提供给用户一个能够记录直接产生页面的Bookmark。Windows Live Local应该是这种应用最好的典范之一,其灵活的交互,良好的界面让我在初遇时不得不眼前一亮。   另外,我也曾经见过把后退按钮禁用的做法(其实这样对于解决问题的确不错),不过这些都似乎只是一个workaround,设法避开这个AJAX应用普遍存在的问题。似乎Gmail能够支持Back按钮,但是我惊奇的发现,在点击Back后,却不能使用Forward,所以这还不算成功的解决这个问题。那么能否解决?似乎已经有了一定的实现。 阅读全文

Sys.ScriptLoader与JS加载进度条的实现

2006-09-13 01:23 by Jeffrey Zhao, 5563 阅读, 收藏, 编辑
摘要:Sys.ScriptLoader与JS加载进度条的实现   今天有人问我,163邮箱那样的Javascript加载进度条是如何实现的。   我不知道,不过实现一个不难,因为<script />有onload事件。还有就是,我们有Atlas。 阅读全文

有感Atlas - 优点、缺点、学习

2006-09-12 16:52 by Jeffrey Zhao, 4743 阅读, 收藏, 编辑
摘要:Atlas的优点是什么?   仁者见仁,智者见智。在这种问题上每个优秀的技术人员应该总是有自己独特的见解。能得到一个能“服众”的结论固然好,但是支持百家争鸣更为重要。我始终认为Atlas的最大长处不在于其Ajax特性,不在于其提供了复杂JS才能实现的多样化功能。在我看来,Atlas是很了不起的,而它的了不起体现在三个地方: Declarative Syntax Extendable Behavior, Extender, etc. Powerful Foundational Framework 阅读全文