对ASP.NET Ajax,jQuery和JavaScript感到困惑


15

昨天,我从ASP.NET 4书中阅读了有关ASP.NET Ajax和jQuery的几章,我发现这些框架非常有趣,并决定进一步了解它们。

今天,我从图书馆借了一些有关Ajax和JavaScript的书。似乎ASP.NET Ajax与Ajax不同,而jQuery似乎是“新” JavaScript。

这是否意味着我可以跳过JavaScript并直接学习jQuery?

另一方面,我借用的非ASP.NET Ajax书似乎仅适用于客户端Web编程,并且看起来与我从ASP.NET Ajax中学到的完全不同。如果我是ASP.NET开发人员,我想我应该坚持使用ASP.NET Ajax而不是客户端Ajax,对吗?那PHP呢?是否有类似于ASP.NET Ajax的“ PHP Ajax”?

不是我懒于学习其他工具,而是我只想专注于正确的工具。


3
+1有趣的是您的问题在网络编程领域的某种意义上是如何概括的。
gideon 2010年

Answers:


31

这是一个复杂的主题,但是我在这里尝试提炼所有这些东西以及它们之间的关系。

AJAX:这是一个概念,其涉及异步提取数据到一个Web应用程序而无需重新加载整个页面。它允许使用类似于桌面应用程序但在浏览器中运行的动态UI(例如Google Mail)。

ASP.NET AJAX:这是Microsoft编写的一个库,试图使具有ASP.NET背景的开发人员可以访问AJAX概念。它提供了与.NET Framework方法类似的方法,例如String.Format等。它与JQuery有一些重叠,但是由于它们各有优缺点,因此可以同时使用。重要的是要记住,这是一个客户端库,实际上不依赖于ASP.NET。您可以将ASP.NET AJAX与任何服务器端技术一起使用。

jQuery:这是一个JavaScript库,提供了使AJAX应用程序易于编写的框架。它提供了一种强大的选择模型,该模型使用类似于CSS的语法与浏览器DOM进行交互。它还抽象了不同浏览器和版本之间的许多差异。因此,相对于浏览器特定的DOM或AJAX API,您最好总是使用jQuery编码。可用的jQuery插件生态丰富,可以为您的Web应用程序添加各种强大的行为,而无需您做很多工作。

JavaScript:这是所有主要浏览器都实现的一种解释语言,它允许在网站上进行动态的客户端行为。语言本身非常扎实,但是不同浏览器提供的不同API使得有效编写“原始” JavaScript变得复杂。因此,所有这些库都位于其顶部。

现在,关于作为ASP.NET开发人员应该学习什么的问题。我建议您熟悉ASP.NET AJAX和jQuery的功能。Microsoft对此表示赞同,并且两者都包含在VS 2010中。它们具有不同的优点和缺点,如果您了解这些优点和缺点,则可以更有效地使用它们。

您不必使用AJAX来创建ASP.NET网站,但如果这样做,您的网站将变得更强大,更友好。并且,如果您对AJAX何时有效以及何时无效有一种认识,那么您将是一个更好的Web开发人员。

哦,不要靠近UpdatePanels。这是MS对AJAX的第一个答案,但它们通常是不好的,并且与使AJAX变得更好的许多概念背道而驰。它们给您带来短期好处,但就我而言,从长远来看,它们是可维护性的噩梦。


3
我唯一要添加的是ASP.NET AJAX还在客户端隐藏了一些细节。该库仍然是所有客户端,但是它提供了方便的方法来链接客户端和服务器端,而不必了解所有详细信息。如果您真的想更好地了解Web编程,则可能希望开始使用jQuery并调用ASP.NET方法以了解其全部工作原理。
Bryan Rehbein 2010年

1
+1非常好总结。VS2008中还包含了较小的古怪jQuery
Conrad Frix 2010年

@康拉德·弗里克斯非常正确。但是,如今谁真的在使用那块旧垃圾?:-)(只是开个玩笑不要让我
RationalGeek 2010年

我也正准备买我的喷火器。奇怪的是,我在日常工作中使用2003 :(,2005:|和2010 :),但没有使用2008
Conrad Frix 2010年

您的JQuery段落至少可以提及Javascript!
除此之外

5

不,没有PHP AJAX。

如果您必须进行客户端开发,请先学习纯JavaScript。然后学习jQuery。如果仅从jQuery开始,您将错过重要的javascript概念,并且基本上将进行剪切和粘贴编程。

JavaScript和jQuery的是可以在几乎任何HTML开发中使用的通用和标准化。PHP程序员在执行客户端操作时使用js + jq,Ruby程序员使用js + jq等。

现在,据我所知,ASP.NET AJAX甚至是更高级的JavScript框架,适合与ASP.NET一起使用,因为您可能知道,ASP.NET本身是从HTML提取的相当高的抽象。这就是为什么他们拥有特定的JS东西的原因。基本上,要与服务器端ASP.NET组件很好地结合并增强它们。另外,ASP.NET AJAX的开始时间还不很清楚jQuery将成为事实上的标准。或者,这很明显,但是对Microsoft却不是;-)-他们实际上计划创建自己的中级JS库(类似于jQuery)。

老实说,我不是Microsoft专家,如果您的雇主/项目不完全需要ASP.NET AJAX,我肯定会尽可能地坚持使用纯JavaScript + jQuery。它将为您提供最广泛认可的客户端编程知识。


4

简而言之,这笔交易

(1)JQuery不会替代Javascript,它是一个简化了常见JavaScript任务的库。任何JQuery代码实际上都是用JavaScript编写的。

(2)AJAX只是JavaScript代码,可操纵网页客户端,并经常从服务器中提取内容,而无需强制重新加载整个页面。AJAX没有多个“版本”。

(3)尽管上面有#2。ASP.NET和JQuery都有库或工具,可简化创建AJAX驱动的网站的任务。也有许多其他工具也可以做到这一点。它都是相同的AJAX,只是生成它的不同方法或封装它的库。

(4)您应该学习哪个图书馆?那主要是一种偏爱。如果您喜欢大量使用Web控件,并且喜欢使用ASP.NET进行拖放式Web开发,则可能更喜欢仅使用ASP.NET控件来进行相同的操作。我也是ASP.NET开发人员,但我更喜欢使用JQuery,因为它有时可以使我获得更精细的控制,即使有时可以做得更多。另外,如果您学习JQuery方式,则可以在包括PHP在内的任何平台上使用它。


3

有很多方法可以执行AJAX,如果您正在使用ASP.NET,则ASP.NET AJAX是其中一种方法。近年来,我个人已经远离这种方式,转而支持jQuery及其AJAX的实现。

如果我是ASP.NET开发人员,我想我应该坚持使用ASP.NET AJAX而不是客户端AJAX,对吗?

ASP.NET AJAX仍然是客户端Ajax。查找由ASP.NET AJAX为您生成的(巨大的)JavaScript库(在ScriptResource.axd或WebResource.axd中运行时,您会看到它们。

这是否意味着我可以跳过javascript并直接学习jQUERY?

jQuery只是JavaScript函数库。您仍然需要了解JavaScript才能正确使用jQuery。jQuery确实抽象了一些棘手的JavaScript,所以我认为jQuery是开始使用和学习JavaScript的好方法(尽管您最好至少在开始使用JavaScript之前先了解一些 JavaScript)。

是否有类似于ASP.NET AJAX的“ PHP AJAX”?

很多 JavaScript库可以为您抽象AJAX。jQuery只是其中之一,但它是一种非常流行的功能,而且非常强大。


0

http://ajaxpatterns.org/PHP_Ajax_Frameworks列出了各种PHP Ajax框架,尽管我不知道它们像ASP.Net AJAX那样集成得如何。大多数AJAX框架的一部分将涉及一些客户端代码,因为AJAX的J用于Javascript。

在Microsoft 引入 ASP.Net AJAX之前,还有其他实现AJAX功能的实现,其中Anthem.Net是我几年前使用的一个示例。


0

JavaScript是一种客户端解释型语言,可让您控制浏览器页面组件。即HTML文档以及它本身的浏览器。jQuery是跨浏览器JavaScript函数的库,可简化与DOM的交互。

ASP.NET和PHP都是服务器端脚本语言,通过ASP.NET JIT(及时)编译器将ASP.NET构建的页面编译成.NET程序集DLL,从而解释用PHP构建的页面。

从技术上讲,ASP.NET并不是一种真正的语言,而是一种框架和运行时,它公开了可以使用C#或VB.NET访问的API。因此,要开发ASP.NET应用程序,您需要了解C#或VB.NET。

根据我的经验,我建议您花些时间学习JavaScript,然后再学习jQuery。当然,您也可以进行交叉学习,即jQuery和核心JavaScript。

AJAX是一种客户端异步编程技术,可以在jQuery和ASP.NET AJAX中使用。ASP.NET AJAX是Microsoft对AJAX技术的实现。


-5

客户端语言用于减少请求的服务器负载。

Javascript是一种客户端脚本语言,而Jquery是一种JavaScript框架,是可选的。Js,jquery可以在您的系统中正常工作,并执行诸如密码验证,网页中的动画等任务,但它们无法访问数据库。

数据库将是MYSQL,ORACLE,并且存在于Web主机中;ASP,PHP是服务器端脚本语言。您可以使用ASP或PHP访问数据库,但在网站上使用SQL也是必需的。


1
ajax和jquery不是语言
Raynos

1
也不在客户端上进行密码验证。这只是一个花哨的“您的密码错误”,但仍然可以通过。
Florian Margaine'4

@Florian Margaine,您可以使用javascript验证密码并提交表单。
pandu '04

糟糕的答案。
ozz 2012年

1
我必须同意,当我在进行审查时偶然发现此问题时,我花费了巨大的精力来尝试至少提高可读性。它的票数已经低于-3,因此可能不会被注意(甚至可能因概念错误而被作者纠正),但至少我希望它现在更具可读性,并向作者展示他如何写这篇论文。回答。
Oeufcoque Penteano
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.