php - 使用 javascript 更新视图而无需重复代码
问题描述
我有一个将“块”列表打印到页面的 php 应用程序。一个块包括日期、时间、标题和一些其他信息。
用户需要能够向页面添加新的“块”,并且我希望新块出现在现有块的列表中而不刷新页面。
目前,我正在使用 jquery 执行此操作。用户添加一个新块,然后 jquery 插入一个新的 DOM 元素,这工作正常。
问题:这样做意味着“块”以两种不同的方式呈现。一种方法是使用 php,在最初打印列表时。另一种方法是使用 Jquery,当添加一个新块时。
拥有这两种不同的渲染意味着每当我想改变一个块的外观,或者向它添加一些新字段时,我必须更新两个不同的东西,php 块和 jquery 块。
php 和 jquery 如何使用相同的代码来渲染单个块?
解决方案
没有代码示例,很难给你任何真正的建议。但一般来说,你有一个 PHP 解决方案,它由主要的 PHP 脚本和一个只输出一个块的片段组成。该片段可以包含在带有传递值的循环中,用于生成主页,稍后可以通过 AJAX 调用相同的片段,而无需任何值并插入到 DOM 中。或者第二种选择是使用 jQuery 函数 .clone() ( https://api.jquery.com/clone/ )。它可以克隆您想要的块,但您仍然需要清除所有值,如果这是您想要的。或者最终你可以包含一个没有值的块并用 CSS 隐藏它,一旦克隆,只需将其显示从无更改为块或它需要具有的任何显示属性。
推荐阅读
- php - 修复 PHP 中的图像旋转
- sql-server - 如何在 WHERE 语句中使用 Case 或 Coalesce 检查列是否为 NULL
- linux - 命令显示正确,但执行方式不同
- node.js - 如何将多个 ReadableStreams 通过管道传输到单个 WriteStream?
- visual-studio - Visual Studio 解决方案资源管理器 - 观察到资产文件的不同图标
- php - 如何格式化关联数组
- java - 如何在 Java 中使用 ta-lib 修复 RSI 计算输出中的零点?
- laravel - 使用重定向从另一个控制器方法调用 Laravel 控制器方法
- amazon-web-services - 如何使用 AWS 设置 no-www?
- java - IntelliJ 配置中的命名策略映射标记是什么意思?