必威体育下载克里斯蒂安·海尔曼

您当前正在浏览Ajax类别的归档文件。必威体育简介

“Ajax”类别的存档

在@mediaajax 2008上启用脚本

星期一,9月15日,二千零八

我现在在@媒体AJAX 2008准备好上台发表我的“启用脚本”演讲,解释关于可访问性的主要问题是我们之间的交流不够。技术从来都不是我们拥有可访问性的真正边界,这是因为我们不知道人们是如何工作的,也不知道什么技术是有能力的。

[幻灯片共享ID=598740&Doc=AtMediaAjaxScriptingableD-12214704002418982-9&W=425]

演示文稿中的链接

哦,看,以一种愚蠢的方式使用Ajax不是一个好主意?

星期二,4月29日,二千零八

这对我来说很有意思dev.opera.com上题为“停止使用Ajax!”的最新文章现在是一件大事。推特,共享书签和谷歌阅读器项目蜂拥而至,人们似乎认为这是一篇惊人的大胆文章。

事实是:詹姆斯是对的。他也是对的他或多或少地提供了与去年在海兰弗林的一次谈话相同的信息。在我介绍渐进式增强和JavaScript之后。

然而,这件事没有什么令人震惊的、大胆的或新鲜的。betway体育官方网他只说:

  • 不要为了使用它而使用任何技术
  • 在使用可能不合适的技术之前,请考虑您想要联系的用户。
  • 确保您的解决方案可用且可访问
  • 在有用的东西上构建解决方案,然后加强它。

这是我在开发任何软件或Web解决方案时认为的一个正常实践。

然而,现在真正的问题是,我们为什么处于这种状态——为什么我们认为这些信息是大胆的,令人震惊或有争议,为什么很多评论仍然是“我不在乎可访问性,因为我的用户不需要它”?为什么假设和简单易懂的谎言盛行,而好东西却闻所未闻?

好,事实上,我们对合唱团的布道时间太长了。我在Web可访问性和标准宣传社区已经有很长时间了,每当我问到企业开发和CMSⅠ被告知,这是不值得战斗,因为“我们将永远达不到他们”。好,这就是资金和大量工作的所在,而且事实上,在许多情况下,无障碍和标准活动人士甚至不知道让这些领域的利益相关者忙碌的问题。我的数字网络文章“客户不关心可访问性的10个原因”以及后续行动七个可达性错误第一部分第2部分列出了这些问题以及我们3年前如何解决这些问题的错误方法。我上周在Abilitynet会议上的演讲栖息地围栏还提到了这种态度和问题。

这就是我现在的处境:我厌倦了人们通过互相指责对方的错误或指出系统存在的问题来进行良好的斗争。当人们要求可访问性或Ajax可用性建议时,你会得到很多抨击和“去验证然后再回来”的答案,但没有很多可以立即使用的信息,甚至是询问导致产品状态的问题。通过问这个简单的问题,你会惊讶地发现什么。

我们必须了解大型系统,框架和公司仍然在运行这个节目,即使我们认为博客,关于网页设计和混搭的书推动了信封的发展。是的,但到目前为止,对于那些销售Ajax和其他现成解决方案的公司来说,这些解决方案还只是一个小小的不适,而这些解决方案更大的部分是人类无法使用的。上一次在非初创企业或小型网络机构的公司中使用聪明的费用或时间跟踪系统是什么时候?当我在年的AjaxWorld会议上纽约市今年早些时候,我听说了很多关于安全的事情,易于部署和可扩展性,但只涉及一点可访问性(Dojo Talk和悠悠谈谈,事实上)。比起质量或可维护性,人们更关心软件的成本和发布速度。每几年购买一个新系统要比建造一个经过适当测试并适用于所有用户的系统便宜。贵公司是否仍有只在IE/Windows上工作的系统或第三方解决方案?我确信至少有一个,询问人力资源部或财务部。

它没有帮助创造另一个术语和调用可访问且可用的Ajax解决方案hijax,或者。尽管我很喜欢这个主意,但我还是同意杰姆斯评论我们不需要再多说一句话,我们需要一个原因对于人们来说,不仅要在不考虑问题的情况下使用现成的解决方案,甚至更好的做法是,首先为那些基于假设构建解决方案的公司提供帮助。几周前我在Twitter上对一家大公司的一个系统大发牢骚时,他们的市场经理EMEA开始跟踪我,我开始和他们交谈。

我已经听过很多次了,我关于渐进式增强和可访问性的想法只是一种“过眼云烟”,而且“在真正的软件市场上,你没有时间这样做”。挑战这种态度是有区别的——通过使用我们以可预测和安全的方式提供的技术,证明我们可以节省您的时间和金钱。然而,关于这方面的案例研究不多…

当我不知道人们为了做正确的事情必须克服哪些障碍时,我无法改变世界。每个开发人员都想做正确的事情,以干净和可维护的方式,为他们所做的一切感到自豪。由于项目仓促,出现了不良产品,糟糕的管理和开发人员变得非常沮丧,他们可以发布低于标准的,只是为了得到钱,或最终得到分配到一个不同的项目。

这是我们需要战斗的战斗——这些问题来自哪里?不是要避免什么技术。你可以很好地使用任何技术,你只需要能够通过炒作和假设,即软件的开发速度与写一篇关于它的酷新闻稿的速度一样快,来销售它。

我想要一个伟大的Ajax API

星期二,4月8日,二千零八

从…回来高地放荡有趣的是,人们似乎还不太相信API的必要性,以及在未来几年的Web开发中所扮演的重要角色。我想这部分是基于API的经验,这些经验没有正确地解释给非极客,不一致或难以使用。如果你只想写一些代码,那么一点一点地寻找信息就没有多大乐趣了(除非你有老派的黑客/黑客头脑,并且没有考虑花几个小时去看HexDumps,试图找到一种在游戏中获得无尽生命的方法,这是浪费时间)。

在我接受采访时保罗博格在我指出设计一个好美国石油学会与设计任何其他用户界面(包括网页)一样重要。加雷斯·拉什格罗夫在他精彩的谈话中同意了如何成为一流的网络公民.我还指出,这方面缺乏清晰易懂的教程和文章,所以我决定现在就试试看。

设计一个伟大的Ajax美国石油学会

作为一个例子,我将使用最近发布的谷歌翻译美国石油学会,指出它的好部分,列出我认为遗漏的东西。我不会去写美国石油学会但要解释为什么我认为缺失的部分很重要。这不是对谷歌的攻击,我只是很喜欢和这个一起工作美国石油学会想让它更容易使用,所以没有什么不好的感觉,我真的脱掉了你给我的帽子美国石油学会像那样!

以下是我在讨论JavaScript中的Ajax API时认为重要的几点(Ajax意味着这一点,但您会惊讶于REST API作为Ajax发布):

  • 良好的文件
  • 复制粘贴示例
  • 模块性
  • 将结果链接到条目
  • 提供灵活的输入
  • 允许自定义对象运输
  • 涵盖可用性基础知识

文件和陈述

让我们从一个积极的开始:文档谷歌Ajax语言美国石油学会很好。您在一个页面上拥有所需的所有信息,包括复制和粘贴示例。这使您可以通过美国石油学会在线,离线阅读,甚至打印出来在拥挤的公交车上阅读,而不必拿出你的笔记本电脑。

小费:如果您提供复制和粘贴示例(无论如何,您应该这样做,因为这是人们作为第一步所做的),请确保它们工作正常!我在必威体育下载书中学到了艰辛的方法开始使用javascript国内脚本和Ajax没有什么比展示代码片段而不是完整的示例更危险的了——人们会复制和粘贴部分脚本,试着运行它,或者通过电子邮件告诉你你的代码被破坏了,或者更糟的是,在亚马逊的书评中抱怨。如果您提供复制和粘贴示例,请确保所有示例都独立工作。

谷歌提供解释什么美国石油学会是,你能用它做什么?所有参数及其含义的列表。这对于初次浏览的用户来说非常好。对于核心读者,他们也提供了一个课堂参考。

使用实例

第一个代码示例非常好,你可以复制和粘贴它,如果你的电脑连接到互联网,它会工作,或者它会工作,如果HTML得到了一些修正。

首先,它缺少文档类型,这有点烦人,因为它是HTML文件。更重要的一点是没有设置编码。这个实时示例版本两者都有点麻烦,尤其是当我们谈论不同的语言,以繁体中文为例时,必须使用正确的编码。

(注:讽刺的是,看来WordPress做得不好是因为某些原因…)







??????????????



提示:确保向人们解释您的代码示例需要Internet连接和其他依赖项(如超文本传输协议因此必须在本地服务器上运行)。Javascript历史上除了浏览器没有其他依赖项,这是最近发生的变化,可能会令人困惑,尤其是当您在后台使用Ajax时,比如某些flash/Ajax API!

模块化好!

在某种程度上让我感到不安的第一点是google.load(“语言”,“1”)线,但是有一个直接的解释它意味着什么。

第一个脚本包括加载泛型谷歌AJAX美国石油学会那有加载()方法添加其他,较小的API构建在这个之上。在这种情况下,行意味着您要加载语言美国石油学会版本号为1的。

这看起来很笨拙,你会得到不好的反馈(似乎没有什么比争取群众有一个脚本包括解决方案更好的了),但实际上是相当聪明的。

通过在基本库中模块化Ajax代码,对核心功能的更改将很容易,并且通过要求实现者将所需的API包含在版本号中,您可以让实现者选择升级,而不是破坏旧的实现,或者必须承载完全向后兼容性的重量。

对,完美的世界场景是你永远不需要改变你的功能美国石油学会-只需添加新功能——但在现实世界中,会有不断的变化,使您有必要与原始的美国石油学会.没有完美的代码是为永恒而建立的。在基础中使用加载器函数美国石油学会也相当聪明,因为这意味着实现者不需要更改URL。

进去的东西应该出来。

这就是谷歌制造问题的地方。两个google.language.detect()。以及google.language.translate()。方法非常酷,因为它们提供发送字符串和定义回调方法,当美国石油学会返回一个值。然而,两种情况下返回的对象都会给出结果和状态代码,但不是输入的内容。您可以获得各种其他信息(如类文档)但是有原始条目是非常有用的。

为什么?Ajax的优点在于它是异步的,这也是它的弱点。这意味着我可以在后台并行发送大量请求并等待结果。然而,这并不意味着请求也按正确的顺序返回!

这意味着如果你想循环一系列的文本来翻译,以下是一种不安全的方法:

var translations=['one'、'two'、'three'、'four'、'five'、'six'、'seven'、'eight'、'nine'、'ten'];
var gtl=google.language.translate;
对于(var i=0,j=translations.length;i GTL(翻译[i]、'en'、'de'、函数(结果){
如果(!)结果.错误){
var container=document.getElementByID(“translation”);
container.innerhtml+=结果.translation;
}

})(二)
}

相反,您需要在递归函数中包装数组计数器的增量:

var translations=['one'、'two'、'three'、'four'、'five'、'six'、'seven'、'eight'、'nine'、'ten'];
var gtl=google.language.translate;
var i=0;
函数doTranslation()。{
var gtl=google.language.translate;
如果(翻译[I])。{
GTL(翻译[I],“恩”“德”功能(结果){
如果(!)结果.错误){
var container=document.getElementByID(“translation”);
container.innerhtml+=结果.translation;
I++;
doTranslation();
}

})(二)
}

}
doTranslation();

这样更安全,但是我们失去了并行运行多个连接的机会,从而更快地获得结果。如果结果美国石油学会呼叫中包含原始文本,事情会更容易,例如,我们可以填充一个结果对象,并以这种方式将正确的请求与正确的结果匹配:

var translations=['one'、'two'、'three'、'four'、'five'、'six'、'seven'、'eight'、'nine'、'ten'];
var gtl=google.language.translate;
var结果=
对于(var i=0,j=translations.length;i GTL(翻译[i]、'en'、'de'、函数(结果){
如果(!)结果.错误){
results[result.input]=result.translation;
}

})(二)
}

更简单的方法是传递一个事务ID,其中可能是循环的计数器。当然,另一种选择是允许输入的数据具有更大的灵活性。

提供灵活的输入

输入文本与结果和事务ID的匹配仍然意味着对美国石油学会,这真的不太好,因为它需要钱,而且会像打击服务器和客户机一样。一个更简单的选项是,不仅允许将字符串作为文本参数,还允许使用字符串数组。然后,返回也将成为一个数组,调用翻译引擎的大量开销将在服务器上通过一次调用完成,而不是通过大量调用美国石油学会电话。

这并不难,大多数JavaScript框架方法都是这样工作的,通过检查第一个参数的类型并相应地进行分支。您甚至可以更进一步,允许实现人员将自己定制的对象作为第三个参数发送。

传输一个自定义对象允许实现者编写更少的代码

自定义对象进出的好处是可以向美国石油学会仅特定于实现的调用。很可能这是对命名空间的引用,以避免重复长方法名或全局变量。可以从可用性的角度出发,提供对任何Ajax调用都有意义的参数。

思考Ajax的可用性

任何Ajax调用都应该为用户提供一个超时。没有什么比得到一个勇敢的新Ajax世界的承诺更令人失望的了,这个世界有更多的交互界面,然后被困在旋转的轮子上,或者更糟的是,碰到一个链接却一无所获。现在的语言美国石油学会没有这样的东西,而且你必须用手滚动一个解决方案。您还必须检查错误状态代码,以查看是否无法检索数据,并以这种方式调用连接的失败案例。

好的美国石油学会会给我这些选择,很可能所有这些都在一个参数对象中滚动。

我的梦想翻译美国石油学会

考虑到所有这些,最好是美国石油学会要提供这些选项:

google.language.translate(输入,参数);

参数为:


输入//字符串或数组
参数//具有以下属性的对象
源语言:字符串,
目标语言:字符串,
transactionid:字符串,
自定义参数:对象,/运输
超时:整数,//(毫秒)
失败:函数(结果,参数)//(出现超时或错误时要调用的方法)
成功:函数(结果,参数)//(当一切正常时调用的方法)

返回的数据来自美国石油学会应同时提供结果和参数。这将使实现者的生活变得非常容易。

总结

总之,这是我对伟大的阿贾克斯的期望美国石油学会

  • 有一个良好的文档,立即复制和粘贴示例,并由完整的类文档进行备份
  • 构建您的API模块化,并允许实现者选择他们想要的版本
  • 提供挂钩以链接美国石油学会方法获取输入的初始数据。最简单的方法是重复这些数据,更复杂的是允许连接ID。
  • 允许通过发送多个值,它会救你的美国石油学会调用和实现人员围绕不可靠的返回顺序问题进行黑客攻击。
  • 允许实现者添加要发送的自己的对象,然后返回以允许名称间距和其他数据状态保留。
  • 允许超时,不信任连接。

这是一项正在进行的工作

我希望你能在这里找到一些符合的东西,如果你知道要补充的东西,只需发表评论。

AjaxWorld东-寒冷天气,北极雪巡洋舰和感知的转变

星期四,3月27日,二千零八

我只是坐在蒙特利尔机场,等待延误的航班到达,然后送我回纽约,回到伦敦。最近几天我第一次在纽约阿贾克斯世界东部会议,然后去蒙特利尔,加拿大在编码员星期六在努伦开一个两个讲习班。可以说,我被炸得精疲力尽,但这是一个很好的机会,可以记录下我在这次旅行中的经历。让我们从AjaxWorld开始。

观众

AjaxWorld会议让我有点惊讶。从门票的价格和网站上解释所有其他演示文稿来看,我鼓足勇气站在一个大房间前,房间里满是出席会议所需的西服,而不是想去。结果我错了。观众是一群公司老板,项目经理,设计师和开发人员以及每个人都非常参与和感兴趣。我见过很多销售开发工具的公司,比如框架和IDE,一些执行公司(包括来自食品网络是谁带我出去吃真正的意大利菜的?纽约市风格)和真正令人惊讶的边缘开发人员,比如运行控制地球同步卫星的软件的人!我有很多有趣的问题和反馈,我很高兴在那里见到了所有人。

地点

会议在罗斯福酒店,位于离纽约中央车站一个街区的地方。这家酒店是20世纪20年代的一家充满魅力和宏伟的大酒店。你进入了这个地方,感觉自己像是置身于一个大力神波洛的插曲中。然而,对于这种规模的技术会议来说,这不是一个很好的选择。对于初学者来说,没有价格合理或稳定的互联网连接。即使是24美元/天的客房连接也像过山车一样上下起伏。这意味着我被开车到了街的另一边的百吉饼店(cosi),因为他们有免费的Wi-Fi(我相信这几天他们一定会杀人)。

至于演讲设施,主要的演讲厅是一个有很高天花板的舞厅,专门为赞助商的演讲和主题演讲预留。这个很容易让所有与会者都能适应,但是非常冷。所有其他的演讲都在较小的会议室进行,会议室的大小不足以容纳所有感兴趣的代表。投影仪被放在几排椅子中间,这使得你很难接触到屏幕,而且与会者不时会撞到它们。

酒店本身对于客房提供的舒适度也非常昂贵。我在蒙特利尔的酒店大约是每晚每间客房价格的三分之一,超现代,免费连接,每个房间都有一份传真和一个保险箱,并提供免费早餐。好啊,它是纽约市,罗斯福建于20年代,但逃跑就是逃跑,不管你怎么打扮。

组织和覆盖范围

除此之外,酒店在酒吧里有一个舒适的氛围,组织者尽最大努力控制一切。他们出色地完成了整个活动的拍摄和部分直播。当你需要帮助时,他们马上就来帮你了,一件非常不寻常的事情纽约市.目前的日程安排有足够多的讲义,你需要的地方到处都张贴着标语,每个代表都有一本关于Ajax的免费书,上面有一个巨大的徽章,告诉别人那个人是谁,他或她做了什么。我觉得自己得到了很好的照顾,很容易就被说服去做一个额外的演讲来代替另一个错过航班的演讲者。

唯一我不太喜欢的是并行演示的数量。我错过了很多我想看的东西,但不能,因为我不能把自己一分为二。聪明的公司确保他们派了几个人到那里,以便进行全面覆盖。

我的演示文稿

我的第一个演讲是一个没有出现的演讲者的空白填充物,我在前一天写了它。我谈到了我们现在有机会使用flash在网站上提供丰富的媒体内容,并在获得适当的美国石油学会.我最近对这个很感兴趣,和伟大的人一起工作阿拉尔巴尔干尼奎梅勒特史蒂夫·韦伯斯特.作为例子,我展示了SWF对象允许您逐步增强HTML要包含闪光灯,如何悠悠图像上传器允许您使用flash批量上传文件,以及如何YouTube美国石油学会允许你用javascript控制在线视频.

我的主要和计划中的演示是使用事件驱动的设计为大型应用程序设计JavaScript,以展示雅虎地图和欧洲体育为例。这次演讲出人意料的一点是,我用南极巡洋舰作为类比来解释它。

南极雪巡洋舰是1937年为探索南极洲而建造的大型运载工具。巡洋舰必须完成的任务是一个令人惊讶的问题-它是要接待5名船员,并让他们在一年内免受可怕的寒冷,穿越5000英里的恶劣环境。这艘巡洋舰绝对是一个技术奇迹,它的发明者们想出了一个惊人的聪明的解决方案来解决他们所预期的问题,包括将轮子收回巡洋舰的机身,以克服裂缝,并重新利用发动机的热量,防止船员冻死。他们唯一忘记计划的是牵引力,当巡洋舰到达南极洲时,它的轮子空转,发动机几乎立刻过热。这艘巡洋舰被遗弃,20年后被发现被埋在冰中。现在还不知道它去了哪里,因为最后一次看到它的那块冰断了,被拖到了海里。

这就是我们如何构建应用程序的例子——我们假设在服务器端进行大量的过度工程,而没有意识到大部分应用程序工作将由浏览器在一个对我们未知的环境中完成。我想激励人们在假设一切都能正常工作以及我们可以预测我们的应用程序运行环境之前,先考虑Web应用程序的可用性和限制。

两次演讲都很充实,我得到了很好的反馈,我会对去那里的人感兴趣,我期待着看到这些视频。

其他演示文稿

我没有看到其他的演讲,但我得到的是:道格拉斯·克罗克福德的主题演讲是一个鲜明的提醒,我们用来创建Web应用程序的技术是多么的破碎,显示了安全缺陷和如何解决这些问题的想法。卡贾和ADSAFE一起被提到,道格拉斯解释了他关于Vats保护网络的想法。在过去的几天里,他的博客上发表了越来越多的细节,所以一定要检查那里。

在安全方面,有一个关于攻击向量的完整谈话
WatchFire的丹尼·艾伦(DannyAllan)精确地展示了无限制脚本注入对攻击者的影响。很容易忽视XSS这是对你的网站的一个普通的渗透,但是本演示文稿展示了一个完全补丁的新的火狐如何运行在一个有防火墙和最新的病毒软件的Windows机器上,可以通过恶意的javascript访问,并通过网络钓鱼和社会工程的混合获得各种密码和更深入的访问。

这个国际商用机器公司参与道场框架在一次联合演示中展示了Dojo的国际化和可访问性选项,我对该框架所涵盖的范围印象深刻。阿里亚关于如何使用i18n和a10y,我们给出了多少信息。干得好!

我花了很多时间和那些Qooxdoo公司,专门用JavaScript编写的小部件框架。他们的演示展示了框架是什么以及它如何跨浏览器工作。它们还展示了小部件的令人印象深刻的性能,以及如何剥皮。不过,QooxDoo真正酷的东西还在酝酿之中,我会确保我们更仔细地观察这些家伙,并展示他们使用的一些巧妙技巧,以提高性能,并使用python构建脚本巧妙地构建应用程序代码。

我看到的最后一个演示是介绍如何构建具有本机外观和感觉的iPhone应用程序,这或多或少是对苹果给出的开发者指南混合介绍宫内节育器.我一点也没有受到这场演讲的启发,因为iPhone是一个非常好的平台,目前非常有趣。

总结和学习必威体育下载

总之,参加会议是值得的。所涉及的演示和主题的组合做得很好,我自己也意识到,现在是我们停止提倡将Web标准作为技术解决方案的时候了。Web标准的存在是为了确保可维护性和可预测性,但在企业界,我们已经迈出了更进一步的一步,而且像flex这样的技术,Silverlight和Comet需要我们密切关注,以确保我们在其中也有可预测和可维护的解决方案。道格拉斯作为浏览器模型被破坏的观点被认为是一条信息太强烈了,但我意识到现在终端用户所期望的很多事情都是不可能实现的。HTML/我们一直在宣扬的CSS/JS三位一体。这并不意味着标准不重要——它们是实现方面的最佳实践。从技术上讲,我们必须振作起来对明年的变化感到惊讶。

使用Ajax代码显示的懒人代码教程

星期一,1月28日,二千零八

目前,我正在为一个关于Web标准的在线自我培训课程编写很多教程,我遇到了不得不在两个地方维护示例代码的麻烦:代码本身和HTML记录解释。因此,我使用jquery编写了一个小脚本,自动将链接转换为HTML代码示例HTML实体和行号。您可以定义要显示的行,哪些行应突出显示,您可以在伊夫拉姆单击链接时。