Interest in Ajax continues to increase, which is somewhat surprising considering that its constituent components have been around for 5+ years. In fact, Microsoft was one of the earliest to adopt Ajax (they used XMLHTTP in an earlier version of Outlook Web Access). Google, however, popularized the development technique by launching Maps, Gmail, and Suggest (hopefully, Microsoft has a big budget for extra chairs).
I’ve been captivated by Ajax, too. When well-implemented, Ajax-powered applications are undeniably impressive (see here); they seem to run fast, they look good, and no plug-ins are required.
However, there are at least three noteworthy problems with the use of Ajax in web application development.
First, Ajax introduces potential user interface issues. In particular, poorly designed Ajax applications work in ways that aren’t intuitive for the average user. For example:
- The back, stop, and refresh buttons don’t always work.
- Since Ajax applications generate pages dynamically, there generally aren’t static links available for bookmarking or sharing with others.
- Pages don’t always print well.
- Applications don’t run offline.
- Clicks and actions generally don’t get included into a browser’s history table.
For more detail, see Adam and Alex Bosworth’s posts here and here. In any case, well-written Ajax applications minimize UI problems by providing meaningful visual feedback to users. Also, it’s worth noting that there are emerging solutions (often crude) to some of the above problems.
Second, Ajax requires JavaScript and, for Microsoft’s Internet Explorer, ActiveX must be enabled (though there is a workaround). I think this is a manageable issue as most browsers are sufficiently up to date–though some companies and individuals have disabled JavaScript or ActiveX by default for security or privacy related reasons (see here and here). The key is to design applications to degrade gracefully (which is a fancy way of saying that web pages should work for new and old browsers, even if the old browsers don’t support certain new capabilities). Interestingly, Google fails in this regard. Try running Google Maps with JavaScript disabled. It won’t work (they could have produced a Flash-version like this one here–in some ways, it’s better than the original).
Third, Ajax developers need to be especially mindful of perceived application performance. The goal, obviously, is to make applications seem fast. One way to make that happen is to preload data as an application starts; then, when a user clicks, there can be an instant response. However, it’s sometimes impossible to preload an entire dataset (think about the vast amount of data in Google Maps), so developers need to make smart design decisions about what data users will most likely want. A related issue is network latency, or the time between a user’s click and the system’s eventual response. If the wrong data was preloaded, there should be a visual cue indicating that the user may have to wait until the right data is collected from wherever it is stored.
Of course, some of these problems aren’t unique to Ajax-enabled applications. However, that doesn’t mean the issues aren’t real. Where some see problems, though, others see opportunity. For example, there is a market for new development platforms for quickly and cost-effectively writing, debugging, and managing complex, enterprise-scale applications. Also, there is a need for better browser standards, so that applications work consistently across different platforms.
My sense is that we’re just seeing the tip of the iceberg when it comes to browser-based applications–there are many more on the way, and we’ll be increasingly amazed with what can be done. To that point, we’ve recently invested in a very intriguing company in this area. I’ll blog about them when I can. Also, I’m always interested in learning about new startups, so email me if you have ideas.
http://www.ajaxian.com/archives/2005/09/whats_wrong_wit.html
Dan Grossman, the VC that brought us Top 10 Ajax Apps, has now told us what is wrong with Ajax.
He has brought out the old chestnuts:
First Problem: User Interface Issues
- The back, stop, and refresh buttons don't always work.
- Since Ajax applications generate pages dynamically, there generally aren't static links available for bookmarking or sharing with others.
- Pages don't always print well.
- Applications don't run offline.
- Clicks and actions generally don't get included into a browser's history table.
We need to be aware of issues like this, but we have fixes for many of these already, and more are coming.
Second Problem: Ajax requiring JavaScript and ActiveX on IE
Sure, sure. Is that such a huge issue these days? And IE 7 will have native support for XHR at least.
If we keep coming up with quality Ajax applications, then that will be the reason to have JavaScript turned on!
Third Problem: perceived application performance
It is easy to make something slow, or seem slow. However, you only need to play with Yahoo! Mail beta to see how a fully functional app runs like a charm. So, we can do it, and it will only get better for us!
There are definitely issues, and there are MANY things that we all wish we had. But, none of these should scare us.
It is interesting to read Desktop Ajax as Desktop.com Returned where Paul says:
What I really want from Ajax apps is for them to do stuff that it's too hard to do with binary apps. I want them to be sensibly integrated with online resources; I want them to support realtime collaboration. I want them to do different stuff from Word/Excel/Powerpoint, not just do the same thing with a different engine under the hood.
We need to find our way with Ajax applications. Let's not just port over to the web way, with a poorer version due to the limitations. Rather we need to embrace the differences and do as Paul says. Do things that suit the web better.
相关推荐
斑马打印机ZT411和ZT421是工业级条码和标签打印机,广泛应用于制造业、物流、零售业等对打印质量和效率有高要求的领域。这两款打印机以其出色的性能、耐用性和易用性赢得了用户的信赖。这份中文手册详细地介绍了ZT...
《ZT213/ZT213LEEA:低功耗RS232多通道USB收发器/驱动器芯片详解》 ZT213/ZT213LEEA是一款专为低功耗应用设计的RS232多通道USB收发器和驱动器芯片,广泛应用于数据通信、工业控制、物联网设备等领域。本文将深入...
ZT410打印机IP地址设置网络打印机ZT410打印机IP地址设置网络打印机ZT410打印机IP地址设置网络打印机ZT410打印机IP地址设置网络打印机ZT410打印机IP地址设置网络打印机
斑马(Zebra)ZT230条码打印机是一款广泛应用在工业环境中的高效设备,其驱动程序是确保打印机正常工作的重要组成部分。本驱动程序专为Zebra的ZT210、ZT220及ZT230系列打印机设计,提供了全面的功能支持,以实现高...
如果未经授权擅自复制本手册或标签打印机中的软件和/或固件,则会受到最长一年的监禁以及最高10,000美元罚款的处罚(17 U.S.C.506)。 软件组件 本产品中包括了 ZPL®、ZPL II® 和 ZebraLink™ 程序; Element ...
ZT7548是一款第五代电容式触控屏幕控制器,支持30x18或18x30的通道配置,可以同时检测最多10个触点。该控制器能够与最多8个键与TSP(触控屏面板)或FPC(柔性印刷电路板)模式一起工作,在多点触控时无扫描率下降的...
斑马(Zebra)ZT410是一款先进的桌面级条码打印机,被广泛应用于物流、零售、医疗、制造业等多个行业。这款打印机以其高效、耐用和易于操作的特点深受用户喜爱。"斑马zt410中文库"指的是为ZT410打印机特别设计的中文...
斑马ZT510打印机驱动文件
斑马打印机ZT210是一款专业的工业级条形码和标签打印机,广泛应用于物流、零售、医疗等行业的标签制作。以下是对如何设置和使用斑马ZT210打印机的详细步骤: 首先,我们需要安装电脑驱动。双击下载好的驱动程序文件...
RS485通信芯片ZT13085E是一种常用的工业级串行通信接口芯片,主要用于构建远程、多节点的通信网络。在工业自动化、楼宇自动化、物联网设备等领域有广泛应用。ZT13085E的设计目标是提供一种高效、可靠的数据传输方式...
赠送jar包:zt-exec-1.9.jar; 赠送原API文档:zt-exec-1.9-javadoc.jar; 赠送源代码:zt-exec-1.9-sources.jar; 赠送Maven依赖信息文件:zt-exec-1.9.pom; 包含翻译后的API文档:zt-exec-1.9-javadoc-API文档-...
jquery + ajax技术实现实时数据更新 官网下载echarts的js文件,找到需要的示例对代码进行修改 后端部分设计 utils.py 与数据库交互 flask的基本运用:static文件夹放css和js文件,templates文件夹下放
未经授权复制本手册或标签打印机中的软件和/或固件将会受到法律制裁,最严重的惩罚可达最长一年的监禁以及最高10,000美元的罚款(根据17 U.S.C. 506)。违反版权法还会面临民事责任。 ##### 商标说明 手册中提及的...
斑马zt210是一款专为中国市场设计的工业条码打印机,非常适合不需要频繁更换标签的条码标签应用。这里给大家提供斑马zt210驱动下载,推荐有需要的用户下载安装。斑马zt210打印机优势:◆ 节省空间* 小巧紧凑和流线型...
证通ZT598是一款专门用于金融、安防等领域,具备高安全性和可靠性的金属键盘设备。这款设备的开发资料包含在"证通ZT598金属键盘开发资料.rar"压缩包中,主要适用于那些进行嵌入式系统开发的工程师。在深入探讨其开发...
《ZT210 230加载介质和碳带》 在条形码和标签打印领域,Zebra公司的ZT210和ZT230打印机是广泛应用的设备,以其可靠性和效率赢得了广大用户的青睐。这两个型号的打印机都属于入门级工业级条码打印机,适用于各种商业...
赠送jar包:zt-exec-1.9.jar; 赠送原API文档:zt-exec-1.9-javadoc.jar; 赠送源代码:zt-exec-1.9-sources.jar; 赠送Maven依赖信息文件:zt-exec-1.9.pom; 包含翻译后的API文档:zt-exec-1.9-javadoc-API文档-...
斑马zt410驱动是由斑马官方推出的打印机驱动程序,如果你的打印机与电脑的连接出现了异常而导致打印机无法正常的使用,下载此驱动能帮你很好的解决这个问题,欢迎购买了此型号打印机的朋友下载使用!斑马zt410打印机...