由于JavaScript是同步运行(不
setTimeout
)添加或删除HTML元素,都应该是向用户显示HTML更改之前它是彻底完蛋了?当JavaScript仍在运行时,浏览器是否显示HTML更改或允许提交表单?更重要的是,如果JavaScript是改变可以包含在表单提交元件(例如添加多个
textarea
元素),而它的用户可以点击提交按钮,在进步,并提交一个不完整的请求? (有些textarea
元素都包含在请求和一些textarea
元素都没有。)
事情是这样的: <form action="" method="post"><input type="submit" value="Submit"></form>
当用户提交,一些功能恰好是在进步。
function happens_to_be_running_and_user_clicks_submit(){
the_form_element.insertBefore(document.createElement('textarea'),the_form_element.firstChild).value='first textarea value';
the_form_element.insertBefore(document.createElement('textarea'),the_form_element.firstChild).value='second textarea value';
}
(似乎有很多关于回流损害性能的讨论。但我还是不知道是否存在任何规定或也许它只是取决于浏览器,尤其是有关提交表单,不管它是否有任何与回流或渲染。)
愿你添加一个明确的问题陈述你的问题?目前这里有几个问题,这些问题似乎相当公开,并且可能会吸引有见地的答案。 – evolutionxbox
请注意,表单提交与settimeout同步。你的意思是阻止代码像一个永无止境的循环或实际上等待服务器的响应? – slebetman
@slebetman不,只是非常简单的JavaScript添加元素,例如将2个'textarea'元素添加到表单中。点击提交按钮可以提交一个'textarea'吗? – cshu