php 创建 DOM 元素并使用 ajax 发送

Posted

技术标签:

【中文标题】php 创建 DOM 元素并使用 ajax 发送【英文标题】:php creating DOM element and sending with ajax 【发布时间】:2013-08-17 00:51:18 【问题描述】:

我刚开始编写服务器代码 (php),我用 javascripthtml 完成了客户端。在开始编写服务器端代码之前,我有一些问题希望得到澄清。

在服务器端 (php) 创建 DOM 元素(imgpheader 等),通过 AJAX 将其发送到客户端,客户端设置一些额外的属性并将其(接收到的 DOM)“附加”到该 html 页面上的div

我想要这个,因为这些 DOM 元素将在多个页面上使用。

是否有可能,如果可能,发送整个 DOM 是否有效?

【问题讨论】:

我认为使用一些模板引擎会更优雅地实现你想要的 当您说“DOM 元素”时,您是指 HTML 标记吗?因为不可能将 DOM 元素从服务器发送到客户端;您可以发送标记,客户端将解析并转换为实际的 DOM 元素。 @bfavaretto:我认为他的意思是:D 所以我也要学xml? 无论哪种方式,您都必须将其作为字符串发送。 如何由你决定。 【参考方案1】:

在发送原始 HTML 而不是 JSON 时,您需要考虑以下事项:

请求的大小将会更大。 JSON 更加简洁 渲染元素的时间将会更短(无需解析 JSON 并渲染 HTML,您已经在服务器端完成了) 可重用性和缓存非常简单。事实上,同一个 sn-p 可以提供给多个客户端,并且可以缓存模板(如果您在 JS 中使用预编译的模板也是如此,但它稍微复杂一些)。 代码逻辑都在一个地方(服务器端)或两个地方(JS 和服务器端)。

【讨论】:

【参考方案2】:

推荐的方法是使用Template Engine,这有很多。

这样,您可以为模板创建单独的文件,并根据需要通过 AJAX 请求加载它们。

我推荐你使用Handlebars,它非常简单,你可以将它与JavaScript一起使用,也可以与PHP本身一起使用!!!

在此处查看 PHP Handlebars 端口:https://github.com/XaminProject/handlebars.php

【讨论】:

我也推荐 Mustach.js 也是一个强大的无逻辑模板引擎 @KhalidDabjan:我同意你的观点 :) 两者都是强大的无逻辑模板引擎。我认为 Yehuda Katz 在 Mustache 中启发了自己制作 Handlebars。 PHP 一个模板引擎(嗯,这是它的能力之一),除非你有人涉足制作模板而不了解 PHP,否则很少使用模板使用另一种语法的引擎。 @Wrikken:我同意你的观点,PHP 本身就是一个模板引擎,但不是最后一部分。永远不要说从不,因为您很少有了解特定技术可能出现的所有用例的知识。例如,我在我一直在开发的 WordPress 插件中很好地使用了 JavaScript 和 PHP 中的 Handlebars。 @Wrikken:我同意你的观点,但我们不是在讨论这个问题,而是需要使用除普通 PHP 之外的其他模板引擎。我提供了一个有效的用例,它证明了 Handlebars 的 PHP 端口的相同创建承认了这一点。

以上是关于php 创建 DOM 元素并使用 ajax 发送的主要内容,如果未能解决你的问题,请参考以下文章

jQuery:创建一个新的 DOM 元素并显示它

识别 AJAX 请求后添加到 DOM 的新元素

Ajax指南

使用 PHP、Ajax、jQuery 将当前 DOM 保存到服务器上的文件?

Jquery .ajax():唯一的 AJAX 查询标识符?

梳理ajax