首页 > 解决方案 > 使用 javascript 更新视图而无需重复代码

问题描述

我有一个将“块”列表打印到页面的 php 应用程序。一个块包括日期、时间、标题和一些其他信息。

用户需要能够向页面添加新的“块”,并且我希望新块出现在现有块的列表中而不刷新页面。

目前,我正在使用 jquery 执行此操作。用户添加一个新块,然后 jquery 插入一个新的 DOM 元素,这工作正常。

问题:这样做意味着“块”以两种不同的方式呈现。一种方法是使用 php,在最初打印列表时。另一种方法是使用 Jquery,当添加一个新块时。

拥有这两种不同的渲染意味着每当我想改变一个块的外观,或者向它添加一些新字段时,我必须更新两个不同的东西,php 块和 jquery 块。

php 和 jquery 如何使用相同的代码来渲染单个块?

标签: phpjqueryrendering

解决方案


没有代码示例,很难给你任何真正的建议。但一般来说,你有一个 PHP 解决方案,它由主要的 PHP 脚本和一个只输出一个块的片段组成。该片段可以包含在带有传递值的循环中,用于生成主页,稍后可以通过 AJAX 调用相同的片段,而无需任何值并插入到 DOM 中。或者第二种选择是使用 jQuery 函数 .clone() ( https://api.jquery.com/clone/ )。它可以克隆您想要的块,但您仍然需要清除所有值,如果这是您想要的。或者最终你可以包含一个没有值的块并用 CSS 隐藏它,一旦克隆,只需将其显示从无更改为块或它需要具有的任何显示属性。


推荐阅读