我想创建一个网站,用户可以在其中输入公式中的数据,然后 php 脚本使用此数据创建 html 代码,该代码应插入到 div 元素中。使用 AJAX 似乎是执行此操作的正确方法,但有一件事困扰着我。在我看来,脚本应该始终生成整个文档(doctypt-declaration、head、body 等),但是如果我使用 AJAX,我只需要发送整个文档的一个片段,因为我必须这样写:
document.getElementById("mydiv").innerHTML = ajaxObject.responseText;
所以我希望我的 PHP 脚本发送整个文档,但我不能将整个文档分配给元素的内部 html。有没有一种方法可以让 javascript 处理整个文档,并将文档正文插入到 div 中,或者我应该改用 iframe?
最佳答案
in my opinion a script should always generate a whole document
坚决反对!看看其他数据格式,例如广泛传播的 json 或 xml。有些格式甚至不遵循某些文档结构:我的文档从这里开始,标题属于这里,必须是这样,其他的必须是这样,文档在这里结束。只有裸数据(当然是在符合语法的情况下)。
服务器根本不需要返回 HTML(如果你不想的话)。反之亦然。提供尽可能多的输出格式。
想想可能会使用您的脚本的其他客户端应用程序,例如非 js 应用程序或浏览器之外甚至无法处理 HTML 的应用程序。
每当您需要另一种输出数据格式时,您是总是编写新脚本或更改现有脚本,还是宁愿拥有一个可以处理多种数据格式输出的强大服务器端应用程序结构?
将您的服务器视为一个界面。它返回您请求的数据。在这种情况下,您如何处理数据完全取决于客户端(服务器甚至不应该关心)。
在您的情况下,返回 HTML block 也绝对没问题。这也是我在这里要做的。 我想指出的是,您绝对不需要您的脚本来返回整个 HTML 文档(这不正是 AJAX 带来的一大优势吗?)
关于javascript - AJAX - 发送 html 片段可以吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21477196/