目标:我所追求的是每次在数据库中添加某些内容时(在 $.ajax 到 Submit_to_db.php 之后),从数据库获取数据并刷新 main.php (通过 draw_polygon 更明显)。
所以基本上我有一个main.php,它将ajax调用另一个php来接收一个将保存到数据库的数组,并且一个json调用另一个php以返回一个数组将由main.php使用。
$(document).ready(function() {
get_from_db();
$('#button_cancel').click(function(){
$.ajax({
url: 'submit_to_db.php',
type: 'POST',
data: {list_item: selected_from_list},
success: function(result){
...
get_from_db();
}
});
});
function get_from_db(){
$.getJSON('get_from_db.php', function(data) {
...
draw_polygon(data);
});
}
});
就我而言,我所做的是get_from_db
函数调用getJSON
实际从数据库获取数据,并将数据用于draw_polygon
。但这是应该做的吗?我是一个完全的新手,这是我第一次尝试getJSON
老实说,ajax 也是如此。所以我的问题是:异步实际上是如何工作的?是否有另一种解决方法,而不必调用函数get_from_db
with getJSON
(它不是同步的,是吗?这就是为什么它不在函数内时不更新页面的原因吗?)一直 - 就像$.ajax
with async: false
(顺便说一句,我无法让它工作)。我的方法是有效的,但我想也许还有其他更好的方法可以做到这一点。我很想学习如何。
为了更清楚地说明,这是我想要实现的目标:
-
@start
的页面,从数据库中获取数据(目前通过getJSON
)
- 绘画或绘制
canvas
使用data
- 当我单击“完成”按钮时,它将更新数据库
- 我想再次自动获取数据以重新绘制画布中的更改。
由于 $.getJSON() 使用 ajax 配置,只需设置全局 ajax 配置:
// Set the global configs to synchronous
$.ajaxSetup({
async: false
});
// Your $.getJSON() request is now synchronous...
// Set the global configs back to asynchronous
$.ajaxSetup({
async: true
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)