在 HTML 中"on the fly"进行更改的过程背后是什么?



在允许对HTML文件进行动态更改的浏览器级别中,会发生什么,例如使用javascript向元素添加类,甚至插入整个元素结构?它会刷新页面吗?是语言级别,还是浏览器保存一些参数并在重新加载页面时加载?我有这种怀疑,因为添加了一些东西后,它不会重新启动我所做的其他javascript修改,而例如,使用django框架,当我再次加载同一页面时,所有用js所做的修改都会消失。

如果我理解正确,您希望用户对页面进行更改并保留这些更改,也许是为了将来的用户?

首先,javascript可以对HTML(实际上是对DOM)进行更改,这些更改可以立即看到。

当页面刷新时,javascript所做的更改将丢失,因为重新显示的是存储在Web服务器上的HTML(如果您是通过xampp或mamp或flack/django/等在本地执行此操作,则假设您是通过Web主机在线访问网站)。

要使更改"保持不变",您必须以某种方式修改后端代码。不可能的不是。

您可以从一开始就对网站进行编程,以便从存储位置(例如,从MariaDB/MySQL数据库,甚至从Web服务器上的文本文件)获取某些数据以显示在网页上(例如,表行的默认顺序……或文本区域或DIV的默认内容——javascript允许用户修改这些内容)。然后,当用户与网页交互并更改其中一项时,您的设计的一部分是让javascript通过将mods保存回存储原始数据的位置(替换现有数据)来保留新数据/更改。然后,下次刷新页面时,将显示更改后的数据,而不是原始数据。

这需要您的网页(在客户端浏览器中运行的javascript)主动与后端web服务器通信,将用户的修改发送回web服务器,并且web服务器必须知道如何接收数据并存储数据。

但是您编写的javascript只运行在客户端——它是如何更改服务器文件的?最流行的答案是:AJAX-这实际上比你想象的要容易得多

因此,您可以同时编写HTML和javascript。javascript允许用户对页面进行一些更改(假设有一个SAVE按钮)单击保存按钮时,javascript代码将获取更改后的数据,并使用AJAX将其发送到后端Web服务器。因此,网络服务器也必须经过编程,以预期这样的通信并接收数据,然后它必须将数据存储在正确的位置。要做到这一点,必须使用服务器端语言在服务器端编写额外的代码。最常见的是PHP或ASP。NET,但它也可以是javascript(如果服务器上安装了Node.js),或者Python、Erlang、Haskell、Java、Rust、Ruby等。NET、Python和现在最流行的javascript。

最新更新