我主要是要求知道从服务器获取小数据的最佳做法是什么。
就像一个例子,我正在使用ajax(或sjax。lol)调用来检查用户是否有新的通知
function checkNewNotifs() {
$.ajax({
url: '/Home/CheckNewNotifications',
async: false,
success: function (data) {
if (data == 'True') {
$('#alert-icon').css('color', '#FF4136');
}
}
})
}
它完成了工作,但我在想是否有更好的方法来实现这一目标?
我目前主要使用ASP.NET MVC 4/5来提供上下文。
修改
对于像我这样的未来ajax初学者读者,实现与此类似的东西的正确方法是通过.done()
我还没有完全掌握ajax的想法,但通过以下调用可以做很多事情:
function checkNewNotifs() {
$.when(
$.ajax({
url: '/Home/CheckNewNotifications',
success: function (data) {
//do data manipulation and stuff.
}
})).done(function() {
//append to view
})
}
tl; dr async:false = bad
答案 0 :(得分:0)
你应该避免同步请求**的主要原因是用户界面。
您有使用同步请求的原因吗?
我认为您应该使用异步请求检查通知,因为如果请求的时间比您预期的要多一些 - 用户将看不到任何冻结的UI。
特别是对于网络连接速度较慢或与服务器连接速度较慢的用户(不同国家或不同大陆的事件),此问题将是实际的。