何时使用JavaScript而不是创建aspx页面?

5

我是C# .Net的新手,我有一个问题在网上找不到答案。什么情况下应该使用经典的html+javascript+css组合,而不是使用带有代码后台的aspx页面? 自从我开始使用.Net以来,我发现aspx页面和代码后台对开发人员非常友好。自从我开始以来,我没有用过任何一行javascript代码。可能有些地方出了问题。我想我可能忽略了某些内容。您能回答我的问题并告诉我一些必须使用html+javascript+css而不是aspx+aspx.cs或反之的示例吗?祝您愉快。


1
使用你熟悉且易于操作的工具。它们最终都会转化为 HTML/JS/CSS 在浏览器中呈现,因此选择应该取决于个人偏好。 - M.Babcock
2
我认为你的选择应该是基于尝试为用户实现最佳体验。这可能意味着使用其中一个,或另一个,或更可能是明智地同时使用两者。 - Mike Chamberlain
8个回答

7
Javascript是一种客户端技术,仅在浏览器中运行,而ASP.NET则在服务器端运行。这使您可以实现不同且互补的功能。
使用经典的服务器端语言,您想要响应的任何用户交互通常必须从浏览器通过互联网发送到服务器。然后由服务器进行处理,并响应一个新页面供浏览器加载。这通常意味着用户的响应时间较慢,尽管您将在服务器上获得更丰富的编程环境。
使用客户端语言,所有内容都在浏览器上处理。这允许更快地向用户提供反馈,但代价是在浏览器提供的受限编程环境内工作,并且无法访问应用程序可能依赖的东西,例如数据库。
当您发出AJAX请求时(通常是使用Javascript编写的调用,该调用向服务器发送请求,接收响应并动态更新页面),当然,界限有些模糊。
您提到您迄今为止尚未使用任何Javascript。也许作为起点,您想要研究在客户端验证用户输入?这样,错误会立即被捕获并报告给用户,而不需要往返于服务器的成本。 http://www.tizag.com/javascriptT/javascriptform.php 客户端和服务器端技术都可以强大且有用。使用两者的组合来为用户提供最佳体验。

5

根据我的经验,.NET 中使用 Javascript/jQuery 主要用于 UI 和客户端验证。如果您正在构建的应用程序不需要 Javascript 来满足客户的需求,则可以利用 .NET 所提供的功能。然而,实现 Javascript 并不难,因此请随意使用您喜欢的并符合客户最佳利益的工具。您仍然可以在 ASPX 页面中编写和使用 Javascript。


3
您可能需要考虑的因素之一就是速度。网页中的Javascript代码将在访问者的浏览器上运行,而后端代码则在托管页面的服务器上运行。

3

根据我的经验,当客户需要一个像Windows应用程序一样运行的Web应用程序时,使用HTML、CSS、JavaScript与ASP.NET的主要目的是为了实现这一点。

这样就不需要频繁地将页面刷新到服务器并再次返回。


3

你需要注意的事项

  • ASP.NET并不依赖于Code Behind技术,你可以将所有C#代码直接嵌入到aspx文件中来创建Web应用。
  • 如果你选择使用ASP.NET和C#来创建Web应用,除非特殊情况下必须使用其他类型页面,否则所有页面都应该是aspx文件。
  • 你需要理解服务器端脚本和客户端脚本之间的区别。ASP.NET是一种服务器端脚本技术,而Javascript仅是一种客户端脚本技术。想了解更多请点击这里查看
  • 你可以创建非常简单的aspx页面,甚至没有任何相关的服务器端脚本,这样也完全没问题。

尝试回答

你使用了“必须”这个词语,所以:

  • 如果你需要进行任何类型的服务器端处理,则必须使用aspx页面而不能只使用Javascript。
  • 如果有特殊需求,需要使用纯HTML文件、Javascript、jQuery和CSS来实现,但这种情况非常罕见,可能会出现以下情况:a)页面需要尽可能快速加载;b)你不介意每个人都可以通过在浏览器上选择“查看源代码”来查看你的全部代码;c)完全不需要服务器端处理;d)并且你不介意在Web应用程序中混合使用多种技术。

2
你可以使用Javascript/JQuery执行不需要任何服务器端处理的操作,例如验证区间或空值的控件,一些花哨的UI效果。与后台代码相比,它更快,因为它不会向服务器发送回传请求,但你可以使用UpdatePanel aspx服务器控件进行部分回传,避免重新加载页面。
作为Web开发人员,你应该始终使用服务器端处理和客户端处理的组合。在客户端上工作逻辑和应用程序过程使基于浏览器的应用程序看起来更具响应性,并且有更多的“灵敏度”。

2
如果你想要高度自定义和高性能的页面,我建议使用html + javascript + css,并调用一些web服务。这样,你就不会受限于asp.net控件。此外,标准的Web Forms存在许多注意事项,可能导致页面性能问题和开销,如ViewState。你也可以设计自己的asp.net控件,但需要一些学习曲线。
实际上,这取决于个人喜好(在其中一个中没有无法在另一个中完成的内容):基础知识 vs 抽象。对我来说,与Web Forms一起使用时,javascript总是感觉有些笨重,但是在mvc中,它更加自然,就像在标准的html + javascript + css页面中一样。

-1

2
ASP.NET并不是让页面更加动态的东西。ASP.NET将服务器端处理引入您的网站,您甚至不需要cs文件,可以在不使用代码后台的情况下编写所有的aspx。这个答案是误导的。此外,要进行动态操作,请查看http://www.w3schools.com/dhtml/default.asp。 - daniloquio
那么你的意思是使用asp.net并不是使网页更具动态性的主要原因之一,对吧?我看不出有任何误导的理由。 - incomplete
2
这段内容是误导性的,因为它说“当你想要创建静态页面时,你可以使用html+css+javascript而不是aspx”,这是错误的,因为:a)你可以使用asp.net创建静态页面;b)html+css+javascript允许你创建非静态网站。关于第二句话,你不需要cs就可以使用asp.net。 - daniloquio
@daniloquio FYI,我发现w3schools是一个误导性的资源。 - user5398447

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接