Javascript Ajax调用后更新DOM的最佳实践
我想知道在Ajax调用后更新DOM的最佳实践是什么 例如,假设我们有一个用户列表,我们可以使用一个表单添加一个用户,该表单通过Ajax调用插入该用户。提交表单并在数据库中添加用户后,编辑DOM以添加HTML,而不刷新页面(使用Ajax成功事件) 我认为有两种可能做到这一点:Javascript Ajax调用后更新DOM的最佳实践,javascript,ajax,dom,Javascript,Ajax,Dom,我想知道在Ajax调用后更新DOM的最佳实践是什么 例如,假设我们有一个用户列表,我们可以使用一个表单添加一个用户,该表单通过Ajax调用插入该用户。提交表单并在数据库中添加用户后,编辑DOM以添加HTML,而不刷新页面(使用Ajax成功事件) 我认为有两种可能做到这一点: 进行Ajax调用,将用户添加到db中,并返回所有带有html标记的DOM结构,等等 制作一个Ajax,将用户添加到db中,返回用户的所有数据,并在Javascript中创建DOM元素 最好的方法是什么(或其他方法)?您可以使
最好的方法是什么(或其他方法)?您可以使用
document.createElement()
向DOM添加元素。然后使用innerHTML
属性向元素添加内容。最后,使用.appendChild()
将元素附加到另一个元素
在这两种选择之间没有更好的办法。您可以在后端准备HTML结构,导入编写好的HTML并直接用JavaScript附加它,也可以在JavaScript中创建前端元素
以下是使用后者的主要优点:
- 调试JavaScript比调试PHP容易(AJAX调用所针对的PHP文件很难调试和维护)
- 使用AJAX而不是HTML字符串返回对象更易于使用和维护。您可以使用API来处理数据。PHP只返回一个JSON对象
- 如果JavaScript处理元素的创建,则可以将这些元素保存在变量中。有时,我发现将
保存在JavaScript变量中很有用,这样我以后就可以访问它来更改其属性,而不必通过选择器(HTMLElement
和其他选择器)querySelector()
document.createElement()
将元素添加到DOM中。然后使用innerHTML
属性向元素添加内容。最后,使用.appendChild()
将元素附加到另一个元素
在这两种选择之间没有更好的办法。您可以在后端准备HTML结构,导入编写好的HTML并直接用JavaScript附加它,也可以在JavaScript中创建前端元素
以下是使用后者的主要优点:
- 调试JavaScript比调试PHP容易(AJAX调用所针对的PHP文件很难调试和维护)
- 使用AJAX而不是HTML字符串返回对象更易于使用和维护。您可以使用API来处理数据。PHP只返回一个JSON对象
- 如果JavaScript处理元素的创建,则可以将这些元素保存在变量中。有时,我发现将
保存在JavaScript变量中很有用,这样我以后就可以访问它来更改其属性,而不必通过选择器(HTMLElement
和其他选择器)querySelector()
- 制作一个Ajax,将用户添加到db中,返回用户的所有数据,并在Javascript中创建DOM元素
- 向AJAX添加操作,该操作链接到后端的函数(即PHP、Python),该函数执行DB更新等操作
- 在Javascript中创建元素结构(可以与页面上的其他结构保持一致)。并将其包装在函数中
document.body.onload = addElement; function addElement ($newuser) { // create a new div element that would contain user record var newDiv = document.createElement("div"); // and give it some content var newContent = document.createTextNode($newuser); // add the text node to the newly created div newDiv.appendChild(newContent); // add the newly created element and its content into the DOM var currentDiv = document.getElementById("user-container"); document.body.insertBefore(newDiv, currentDiv); }
- 制作一个Ajax,将用户添加到db中,返回用户的所有数据,并在Javascript中创建DOM元素
- 向AJAX添加操作,该操作链接到后端的函数(即PHP、Python),该函数执行DB更新等操作
- 在Javascript中创建元素结构(可以与页面上的其他结构保持一致)。并将其包装在函数中
document.body.onload = addElement; function addElement ($newuser) { // create a new div element that would contain user record var newDiv = document.createElement("div"); // and give it some content var newContent = document.createTextNode($newuser); // add the text node to the newly created div newDiv.appendChild(newContent); // add the newly created element and its content into the DOM var currentDiv = document.getElementById("user-container"); document.body.insertBefore(newDiv, currentDiv); }
- 我会选择第二个选项
- 我会选择第二个选项
nameemal
都意识到我用法语写的(balise=tag)都很好。但是第二个对你有好处API@RokoC.Buljan所有html标记,如returnnameemal
都意识到我是用法语写的(应答器=tag)