CoffeeScript - Ajax


AJAX 是一种用于创建交互式 Web 应用程序的 Web 开发技术。

  • AJAX代表同步JavaScriptXML。它是一种借助 XML、HTML、CSS 和 Java Script 创建更好、更快、交互性更强的 Web 应用程序的新技术。

  • Ajax 使用 XHTML 来显示内容,使用 CSS 来表示,并使用文档对象模型和 JavaScript 来显示动态内容。

  • 传统的 Web 应用程序使用同步请求向服务器传输信息或从服务器传输信息。这意味着您填写表格,点击提交,然后定向到包含来自服务器的新信息的新页面。

  • 使用 AJAX,当您点击“提交”时,JavaScript 将向服务器发出请求、解释结果并更新当前屏幕。从最纯粹的意义上来说,用户永远不会知道任何内容都被传输到了服务器。

  • 尽管可以使用任何格式(包括纯文本),但 XML 通常用作接收服务器数据的格式。

  • AJAX 是一种独立于 Web 服务器软件的 Web 浏览器技术。

  • 当客户端程序在后台向服务器请求信息时,用户可以继续使用该应用程序。

一般来说,我们使用 jQuery 来处理 Ajax。以下是 Ajax 和 jQuery 的示例

<html>

   <head>
      <title>The jQuery Example</title>
      <script type = "text/javascript"
         src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
		
      <script type = "text/javascript" language = "javascript">
         $(document).ready(function() {
            $("#driver").click(function(event){
               $('#stage').load('/jquery/result.html');
            });
         });
      </script>
   </head>
	
   <body>
	
      <p>Click on the button to load /jquery/result.html file −</p>
		
      <div id = "stage" style = "background-color:cc0;">
         STAGE
      </div>
		
      <input type = "button" id = "driver" value = "Load Data" />
		
   </body>
	
</html>

这里load()向指定的 URL /coffeescript/result.html文件发起 Ajax 请求。加载此文件后,所有内容将填充到带有 ID stage标记的 <div> 内。假设我们的 /jquery/result.html 文件只有一个 HTML 行 -

<h1>THIS IS RESULT...</h1>

当您单击给定按钮时,将加载 result.html 文件。

CoffeeScript 与 Ajax

我们可以使用 CoffeeScript 重写上面的示例,如下所示。

<html>

   <head>
      <title>The jQuery Example</title>
      <script type = "text/javascript"
         src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
      <script src="http://coffeescript.org/extras/coffee-script.js"></script>
        
      <script type="text/coffeescript">
        $(document).ready ->
          $('#driver').click (event) ->
            $('#stage').load '/jquery/result.html'
            return
          return
      </script>
   </head>
	
   <body>
	
      <p>Click on the button to load /jquery/result.html file -</p>
		
      <div id = "stage" style = "background-color:cc0;">
         STAGE
      </div>
		
      <input type = "button" id = "driver" value = "Load Data" />
		
   </body>
	
</html>