什么是开始学习AJAX的最佳位置(我有Perl作为后端)
我目前正在使用基本cgi开发网站以显示页面。我希望将网站更改为具有更好的(读取动态)界面。
我们会建议采用哪些技术(如果不是AJAX)和/或者教程来入门?
解决方案
最好的选择是从一个Java库开始,该库为AJAX提供一个合理的接口,例如Prototype。有很多资源可用于学习此类库的基础知识。例如:http://www.prototypejs.org/learn
如果我们对javascript方面不熟悉,则应该开始使用框架。
jQuery轻巧好用,并具有良好的教程和文档。
如何学习jQuery?
我建议使用jQuery,它是轻量级的,非常易于快速掌握,这是一个强大的irc和网络社区。对于ajax,它就像$ .ajax(url,callbackFn);一样简单。 http://docs.jquery.com/Ajax
网址为www.learningjquery.com的优秀教程
我们可能要签出HTML :: Prototype,JQuery或者CGI :: Ajax
最好采用以下方法来处理AJAX:
- Javascript语言。
- 对DOM的理解。
- 对XMLHttpRequest的理解。
一旦掌握了这些知识,就可以对要使用的API或者框架做出明智的决定。后端并不重要,但是我建议我们使用JSON作为XML的首选协议。 XML解析充满了不一致之处,这需要代码破解来解决。 JSON更简单。
请参阅我的回答"是否有人从Struts 1迁移到另一个Web框架?"欲获得更多信息。
如果我们不想深入研究螺母和螺栓,可以使用TIBCO通用接口。它是免费的开放源代码,可以在Tomcat中运行。 GI是基于AJAX的IDE,可在浏览器中运行,并用于制作AJAX网站。
我不在TIBCO工作,只是在尝试提供帮助。如果我们必须为此工具付费,我可能不会推荐它。
-史蒂文
我发现W3 Schools教程始终是开始阅读更深入的教程之前的好地方。
http://www.w3schools.com/ajax/default.asp
如果我们真的想了解自己在做什么,JavaScript:The Definitive Guide是学习JavaScript的重要参考,并且专门讨论XMLHttpRequest的工作方式以及使用它时跨浏览器的关注点。
一旦掌握了这一点,就可以考虑使用像jQuery或者Prototype这样的框架来为我们完成繁重的工作。
术语" AJAX"有点误导,很容易引起试图学习它的人们的困惑。该术语本身实际上仅适用于异步地从服务器获取或者发送数据(即,无需重新加载页面),但是它倾向于用来描述任何现代Java繁重的系统。 (实际上,即使我们正在谈论异步获取或者发送数据,术语" AJAX"也不是完全正确的,它最初的含义是"异步Javascript和XML",但是大多数现代实现使用JSON代替XML) 。
因此,我怀疑我们真正在说的是"现代Javascript"。在网站上使用Javascript(如前所述)涉及多种相关但截然不同的技术,并且在开始了解它们是什么,它们在哪里开始和结束以及它们如何交互时非常有帮助。
首先,我们拥有Java语言本身。尽管有几种实现方式,但实际上这是相对简单的,选择它的语法应该很少有麻烦。
然后是DOM或者文档对象模型。这是浏览器到页面本身的基于Javascript的界面。与Java语言相比,DOM实际上是相当复杂的,并且可能是我们遇到最多麻烦的地方(尤其是因为不同浏览器提供的DOM有时会有所不同)。
为了真正开始学习这些知识,我建议我们从研究基本的DOM操作开始。了解如何使用DOM动态创建元素,如何分配事件,代码如何与页面交互等。网络上有大量资源可供查看,还有几本书。如前所述,O'Reilly的Javascript:权威指南是一个很好的资源。如果我们需要可靠的Web资源,请尝试PPK的网站。我们还需要安装Firebug,它对于调试非常有用。它还是一个出色的学习工具,我们可以打开控制台并在任何想要的页面上"播放"。 DOM浏览器和制表符补全使其非常容易。
我们可以从孤立地看待Javascript开始,但是它非常简单,我们只需看几个示例就可以掌握所需的一切。相反,我建议随着前进,我们将重新访问Javascript语言本身。了解其对象原型(以及它与我们可能习惯的更传统的OOP类的区别)。这些概念可能需要一些时间才能与某些人"点击",并且绝对不需要我们知道首先,所以我建议暂时对其进行修饰。
注意,我还没有提到AJAX或者任何框架,但是如果我们在开始研究框架之前具有Javascript和DOM的基础知识,就会发现它容易得多。当涉及到DOM操作时,如果我们不知道其幕后工作,这些框架仅提供"快捷方式"和实用程序功能,解决任何问题可能非常棘手。
我还建议使用一个框架来处理AJAX的复杂性,这仅仅是因为(与DOM操作和事件处理不同),除非我们真的愿意,否则我们几乎没有理由了解XMLHttpRequest的复杂性。让框架来处理它以及所有出现的浏览器兼容性问题。
祝你好运!
另请参见perl.com的Perl中的Using Ajax from Perl
我从Ajax Hacks首次获得了AJAX(和JavaScript)的介绍,这为理解它的全部内容以及每个人都按需做的"为我们做的"库的幕后工作提供了良好的基础。
这里有很多关于将AJAX(或者JavaScript / DOM)作为独立实体进行学习的好答案,但是CPAN的CGI :: AJAX模块是设置自己的网页以使用AJAX更新网页的最快,最简单的方法使用Perl后端即时运行。它不需要DOM,XML,JSON或者Perl之外的任何其他语言的知识,只需一点HTML以及JavaScript的最新提示。
我们要做的就是分配一个JavaScript事件处理程序(例如onkeyup ='...'),指定要调用的Perl函数以及要提供哪些数据作为输入,并创建一个div来接收输出。 CGI :: AJAX将为我们处理与服务器的所有通信以及DOM操作。
我会推荐Head First Labs的《 Head Rush Ajax》一书。
它将引导我们从头开始学习Ajax。
他们对我们可能知道或者可能不知道的内容做出了最小的假设。
作者在介绍用于理解和使用AJAX的构建块方面做得很好。
问候...