摘要:
最近时间很少,而且总觉得没有什么题材可写。今天无意中看到了Aldebaran's Home提出的一个疑问,为什么在Form_Load方法中动态添加的AsyncPostBackTrigger会在经过一次异步刷新后就失效,导致第二次提交变成了普通的提交。我尝试了一下,果不其然。对ASP.NET AJAX程序集源码的分析之后,我得出了问题原因和解决方案,在这里和大家共享一下。 阅读全文
随笔分类 - 04. 前端表现
ASP.NET AJAX Control Toolkit Release 10301
2007-03-03 00:20 by Jeffrey Zhao, 6265 阅读, 收藏, 编辑
摘要:
与前几次相比,这次发布属于一个大的调整。 阅读全文
Sys.StringBuilder里的Bug
2007-02-13 02:35 by Jeffrey Zhao, 6453 阅读, 收藏, 编辑
摘要:
Sys.StringBuilder出现了这样的Bug,他们一定没有做好Code Review。 阅读全文
鸡肋烹制出的美味——真正可调试的ASP.NET AJAX
2007-02-06 07:23 by Jeffrey Zhao, 6406 阅读, 收藏, 编辑
摘要:
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, 5401 阅读, 收藏, 编辑
摘要:
在上次的文章中,我们已经提到了一种能够跨子域名进行AJAX请求的方法。我们现在就来实现一个对开发人员透明的实现,它会自动判断这个请求是否是跨子域名,如果不是,则使用传统的方法发出AJAX请求,反之则使用我们的方式。 阅读全文
UpdatePanel与ASP.NET Page的缓存
2007-02-04 11:18 by Jeffrey Zhao, 7385 阅读, 收藏, 编辑
摘要:
UpdatePanel的功能大家一定都非常熟悉了。无论是官方还是社区里热心推广ASP.NET AJAX的朋友,都会对于UpdatePanel的使用进行大量说明与展示。但是在这些简单的的示例似乎都遗漏了一个非常重要的问题,这个问题会直接导致UpdatePanel无法正确使用。
这个问题就是ASP.NET Page的缓存。 阅读全文
ASP.NET AJAX正式版的文档发布了
2007-02-02 11:25 by Jeffrey Zhao, 5109 阅读, 收藏, 编辑
摘要:
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, 13114 阅读, 收藏, 编辑
摘要:
事情的经过是这样的,还是那个个人门户网站。其中有个功能就是RSS订阅,每个订阅作为一个模块出现在页面上。如果一个用户订阅了比较多的RSS,则在打开页面时所有的RSS模块就会开始加载,这时候可能就会需要十几秒甚至更长的时间才能加载完毕。这时,如果用户需要作别的AJAX操作——比如保存页面设置——那么长时间的等待就不可避免了,谁让浏览器对于相同域名只能同时存在两个连接呢?不过这可不是一个好的用户体验,那么我们需要怎么做呢? 阅读全文
WPF/E 2007年2月CTP发布了
2007-02-01 14:42 by Jeffrey Zhao, 3562 阅读, 收藏, 编辑
摘要:
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, 10955 阅读, 收藏, 编辑
摘要:
如果需要使用JavaScript更新UpdatePanel,以前往往会使用JavaScript来模拟Trigger的触发。我们往往会将一个按钮设为某个UpdatePanel的Trigger,然后在客户端模拟它的点击,使UpdatePanel进行更新。但是这样的做法实在太麻烦了些,也相当的不优雅。现在我们就来编写一个组件解决这个问题。 阅读全文
挣脱浏览器的束缚(5) - 哭笑不得的IE Bug
2007-01-27 03:27 by Jeffrey Zhao, 7231 阅读, 收藏, 编辑
摘要:
还记得《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, 8726 阅读, 收藏, 编辑
摘要:
我们已经知道,脚本文件的并行下载能够提高页面的加载速度。但是目前还有一个急需解决的问题,那就是对于FireFox浏览器的优化。在我们之前使用的优化方法,无论是简单实用的document.write还是食之无味的defer属性,FireFox浏览器都对此置若罔闻。不过FireFox也不是绝对地“冥顽不灵”,开发人员还是有方法对它进行优化的。 阅读全文
ASP.NET AJAX正式版带来的Validator问题及解决方案
2007-01-24 15:07 by Jeffrey Zhao, 5876 阅读, 收藏, 编辑
摘要:
升级到ASP.NET AJAX正式版之后,一般来说重新编译不会有什么问题,不用做什么修改,这是个好消息。不过在执行时就会出现问题了。因为在正式版的程序集中,删除了兼容UpdatePanel的Validator那些类,因此TagMapping时就无法找到需要的类了。 阅读全文
ScriptManager的ResolveScriptReference事件的重要作用
2007-01-23 16:10 by Jeffrey Zhao, 4073 阅读, 收藏, 编辑
摘要:
合理使用,支撑一个专业的详细的脚本库也不是件困难的事情。 阅读全文
挣脱浏览器的束缚(3) - 两个连接还不够“并行”
2007-01-22 14:42 by Jeffrey Zhao, 7793 阅读, 收藏, 编辑
摘要:
谈谈优化难度:比较document.write与defer、突破两个连接的限制 阅读全文
挣脱浏览器的束缚(2) - 别让脚本引入坏了事
2007-01-20 01:25 by Jeffrey Zhao, 6819 阅读, 收藏, 编辑
摘要:
现在哪里还找得到不引入JavaScript脚本文件的Web应用?使用脚本文件的好处多多,其中最重要的可能就是提供缓存能力了。使用脚本文件之后再加上缓存,可以大大降低数据传输量,提高页面打开的速度。不过脚本文件的引入也不是简单得不值一提,我们完全有能力来优化它。 阅读全文
挣脱浏览器的束缚(1) - 前言
2007-01-18 17:08 by Jeffrey Zhao, 7821 阅读, 收藏, 编辑
摘要:
最近在为某个人门户站点作优化。
从传统意义上来说,这个站点的各方面都属中规中矩。不过作为一个以客户端为中心的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, 6454 阅读, 收藏, 编辑
摘要:
IE Dev Toolbar不久前发布了Beta 3,新增(或改变)的功能有:
1、工具栏的打开方式:
2、最常用的操作被列举为单独的按钮:
3、Style Tracer:
4、View Source: 阅读全文
Tip:使用Extender的ResolveControlID事件
2006-12-31 03:42 by Jeffrey Zhao, 4279 阅读, 收藏, 编辑
摘要:
不知道大家在使用ASP.NET AJAX Control Toolkit里的各个Extender控件时,有没有接触过ResolveControlID事件?这个事件在官方也只用了很少的笔墨来描述。的确,这个事件不太常用,看看ASP.NET AJAX的演示站点,根本没有使用过ResolveControlID事件。本文简单描述了ResolveControlID事件的作用以及使用方式。 阅读全文
Tips:AccordionExtender中的DataTable数据绑定/点击特定元素出发折叠效果
2006-12-29 18:14 by Jeffrey Zhao, 4154 阅读, 收藏, 编辑
摘要:
ASP.NET AJAX Control Toolkit中实现地最复杂的Extender估计就是AccordionExtender了。因为它对于DOM元素结构的要求比较高,所以它还为此实现了AccordionPane控件,用来生成符合AccordionBehavior的DOM结构。但是在使用时,似乎总是会遇到一些限制,这里将对于两个问题介绍一下简单的解决方案。
1、使用DataTable进行数据绑定
2、点击指定元素产生折叠效果 阅读全文