我正在使用AJAX开发一个Web应用程序,我想知道是否可以在从另一个页面成功添加新项目时通知包含项目列表的页面。
$(function(){
var $name = $("#nameTxtB");
var $order = $("#orderTxtB");
var $price = $("#priceTxtB");
$("#addButton").on('click', function(){
var $try1 = $price.val();
var $parse = parseInt($try1);
$.ajax({
type: 'POST',
url: 'http://localhost:51834/CoffeeService.svc/addorder/',
headers: {'X-Requested-With': 'XMLHttpRequest'},
data: JSON.stringify({
Name: $name.val(),
Order: $order.val(),
Price: $parse,
}),
dataType: 'json',
contentType: 'application/json',
success: function(){
alert("Order was sucessfully created!");
setTimeout(function() {
location.reload();
}, 500);
},
error: function(){
alert("Something went wrong!");
}
});
});
});
答案 0 :(得分:1)
这当然是可能的......有许多不同的优点/缺点的解决方案。
基本方法是投票--I.E。每隔x秒做一次ajax调用以检查新项目。
对于更复杂的方法,请查看SignalR框架,该框架使用Web套接字等来发送更新。这在性能方面要好得多,因为当没有新项目时你不进行不必要的调用,但实现起来有点复杂......
答案 1 :(得分:1)
尝试"setinterval(function(){},interval)"
继续检查列表项的长度,如果更新,则成功添加项。
但是使用setInterval连续观看列表项会有性能问题。最好使用 HTML 5 Web Worker 运行单独的线程并在Web worker中执行 setinterval ,这可以是另一种方式。
适用于网络工作者:https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Using_web_workers