-1

这个问题可能是概念性的(不是面向编程的),但我觉得我需要了解这些如何协同工作才能正确编程。

我所知道的:
1)php 是一种可以与 html 一起使用的编程语言
2)从 html 调用 javascript
3)json 用于将 php 数组转换为 javascript 数组
4)ajax 是一种调用 json 的方法

所以我的问题是......
1)哪个优先?即是在php 之前调用javascript 代码吗?
2)当你在javascript中有ajax请求json时......什么时候调用?是在php之后吗?

我很困惑事情是如何相互合作的,就像首先和最后的步骤一样。

4

3 回答 3

6

我将纠正你所说的所有不准确之处。看起来你是自学成才(顺便说一句,这不是一件坏事)。

  • HTML 是一种标记语言。
  • PHP 是一种服务器端处理语言,可以(如果需要)输出 HTML
  • JavaScript 是一种客户端处理语言,可以(如果需要)修改文档对象模型(HTML 文档,如果您愿意,但不完全准确)
  • JSON 是一种标记语言。通常用于传输数据。
  • AJAX 是一种 JavaScript 技术,通常用于在不刷新页面的情况下从客户端触发服务器端进程。

因此,PHP “构建”了您的 HTML,而 JavaScript 允许您丰富它。AJAX 是 JS 函数 (xmlHTTPRequest & co) 的子集,它允许您 ping PHP 页面(或其他页面!)以从它们获取数据。如果他们输出 JSON,您可以解析此 JSON 对象以取回一个对象。

典型例子:

测试页.html

<!doctype html>
<head>
<title>Test page</title>
</head>
<body>
<textarea id="test""></textarea><button id="mybtn">Test</button>
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript">
 $(function() {
  $("#mybtn").click(function() {
   $.ajax({
       url: "page.php",
       type: "GET",
       dataType: "json",
       success: function(d) {
          $("#test").text(d.randomNumber);
       } 
    });
    return false;
   });
  });
  </script>
 </body>
</html>

页面.php

<?php echo json_encode(array("randomNumber" => rand(1,10))); ?>

如果你运行它(我已经在http://www.sebrenauld.co.uk/testpage.html上自由地托管它),当你点击按钮时,你会在 textarea 中看到一个随机数。

当您单击该按钮时实际发生了什么?

当您单击该按钮时,您的浏览器会通过 GET 向 /page.php 发出请求。此请求返回一个 JSON 对象,jQuery 自动将其解释为该d对象。jQuery 然后触发success回调,更新表单。瞧!

有任何问题,请不要犹豫。我是来帮忙的。

于 2013-03-29T14:21:28.717 回答
1
  • PHP 是一种可以生成 HTML 的动态编程语言 - 它在服务器上运行
  • JavaScript 是一种在客户端(浏览器)上运行的动态编程语言
  • JSON 是JavaScript 对象表示法,并非特定于 PHP,尽管它可用于使用 PHP 将 PHP 数组打印到 JavaScript 数组中。
  • AJAX 是一种在 JavaScript 中发出异步请求和接收响应的方法。
  • PHP 必须生成包含调用 JavaScript 所需标记的 HTML,所以它是第一位的。
  • PHP 在生成页面时在开始时被调用。AJAX 请求可以调用 PHP 代码所在的 URL。原始页面上的 JavaScript 可以在 PHP 生成响应时运行。
于 2013-03-29T14:19:04.263 回答
1

以下是这些部分如何组合在一起的广泛概述:

服务器与客户端

要理解所有部分,您需要了解服务器和客户端之间的区别。

当您通过在浏览器的地址栏中输入地址、单击链接等方式打开网页时,您的网络浏览器会向另一台计算机发送请求,该计算机位于存储您想要的网页的其他位置。它本质上是向那台计算机询问网页,然后那台计算机决定你得到什么。我们将这台计算机称为“服务器”,因为它正在为您“服务”网页。

一旦服务器完成了它需要做的任何处理,它就会将页面发送回您的浏览器。然后,您的浏览器会解释您返回的数据并以漂亮的方式显示给您(假设网页设计师做得很漂亮)。我们将您的浏览器称为“客户端”。

现在对于您询问的特定技术:

PHP

PHP 被称为“服务器端”语言。这意味着它在服务器上运行以帮助生成将发送回浏览器的网页。它在您的浏览器看到它之前运行。

JavaScript

JavaScript 被称为“客户端”语言。它在您的浏览器中运行,改变事物,加载新信息,使页面具有交互性。它在页面加载之前永远不会运行(有时页面加载时,但在您的浏览器开始解释页面之前永远不会运行)。需要记住的重要一点是,PHP 可以在它生成的 HTML 中生成 JavaScript,因为无论如何,这就是 JavaScript 所在的地方。

JSON

JSON 是代表“JavaScript Object Notation”的首字母缩写词。JSON 不是一种语言;它是 JavaScript 的一个元素。JSON 什么都不;它是一种以有组织、有用的方式表示数据的方法。

PHP 可以在 JavaScript 块中“打印”一个 JSON 对象,作为一种以有用的格式将数据直接传递给客户端的方式。可以使用诸如 之类的函数将 PHP 对象“转储”为 JSON json_encode(),一般来说,该函数返回复杂数组或对象的 JSON 表示。

请注意,JSON 不仅仅是一个数组。请进一步调查。

AJAX

AJAX 是代表“异步 JavaScript 和 XML”的另一个首字母缩写词。(这是一个有点误导性的名称,因为 XML 不一定是该过程的一部分,而且现在变得越来越少见,所以不要担心名称的那一部分。)

简而言之,AJAX 本身也不是一门语言。它更像是 JavaScript 中的一种技术,可以从服务器请求更多信息/数据,而无需重新加载整个网页。

正如您所说,AJAX 更常见的用途之一是从服务器请求 JSON 对象。这绝不是 AJAX 的唯一用途,但它是一种常见的用途,尤其是在交互式应用程序中。

优先事项

简短的回答:PHP 出现在 JavaScript 之前,因为它存在于服务器上;JSON 和 AJAX 是 JavaScript 语言的元素,因此它们发生在 JavaScript 中,在浏览器中。

每当您的 JavaScript 进行 AJAX 调用以从服务器请求一些 JSON 时,PHP 将成为用于解释请求并将 JSON 发送回浏览器的语言,这是一个很好的变化。

--

希望这会有所帮助。您应该查看ZendMozilla Developer Network等资源。以下是一些不错的起点:

于 2013-03-29T14:41:10.633 回答