调用ajax的最佳位置是调用API
What is the best place to call ajax which is calling an API?
我知道有很多这样的问题,但我没有找到适合我的解决方案。
我正在使用ajax调用API,所以我的问题是我的网页得不到响应,所以有些地方我发现这只是因为不当的ajax处理,你可以帮助知道我把我的ajax在哪里。我需要在加载页面时调用ajax。
我已经尝试调用ajax没有任何功能,如…
show('ajax Call start for player');
$('#loading').show();
$.ajax({
url: '/home/getPlayers',
success: function (data) {
data = JSON.parse(data);
playerData = data.Data;
show('data of player');
// show(playerData);
showPlayers(1);
show('ajax Call complete for player');
flag = 1;
}
});
show('ajax Call start for loadplayeronpitch');
$.ajax({
url: '/home/checkUserTeam',
success: function (data) {
while (true) {
if (flag) {
loadUserTeampitch(data);
break;
}
}
show('ajax Call complete for loadplayeronpitch');
}
});
这是不工作,导致无响应的页面。
然后从其他问题我已经尝试调用ajax在以下函数
$(document).load(function(){
});
$(function(){
});
$(document).bind("load", function () {
});
但是这些都不能正常工作,你能帮我吗?
谢谢。
不响应是由你的while(true)
循环引起的,所以永远不要再这样做了:-)
您要做的是:只在第一个ajax调用完成后运行第二个ajax调用。因此,您应该将这两个ajax调用放到单独的函数中,然后在页面加载时调用第一个函数。
在第一个ajax的成功部分(在第一个函数中),调用第二个函数。做。
function firstAjax() {
$.ajax({
url: '/home/getPlayers',
success: function (data) {
data = JSON.parse(data);
playerData = data.Data;
show('data of player');
//show(playerData);
showPlayers(1);
show('ajax Call complete for player');
secondAjax();
}
});
}
function secondAjax() {
$.ajax({
url: '/home/checkUserTeam',
success: function (data) {
loadUserTeampitch(data);
}
});
}
$(function() {
firstAjax();
});
这应该像你想的那样工作,但是我现在不能测试它。
$('#loading').show();
var deferedA = $.ajax({
url: '/home/getPlayers',
success: function (data) {
data = JSON.parse(data);
playerData = data.Data;
show('data of player');
// show(playerData);
showPlayers(1);
show('ajax Call complete for player');
}
});
show('ajax Call start for loadplayeronpitch');
var deferedB = $.ajax({
url: '/home/checkUserTeam'
});
//wait until both request are finished
$.when(deferedA, deferedB)
.done( function (dataA, dataB) {
loadUserTeampitch(dataB);
show('ajax Call complete for loadplayeronpitch');
});
编辑我建议使用Promise
代替$.when
(承诺像jQuery的实现有点奇怪),但是问题与Promise
是,它只适用于较新的浏览器,对于较旧的一个你需要一个库,如蓝鸟或当
EDIT:如果你想更简单,你可以使用下面的方法。
<script type="text/javascript">
$(function() {
var flag = 0;
var data1;
$('#loading').show();
$.ajax({
beforeSend: function() {
show('ajax Call start for player');
},
url: '/home/getPlayers',
success: function(data) {
flag++;
data = JSON.parse(data);
playerData = data.Data;
show('data of player');
showPlayers(1);
show('ajax Call complete for player');
checkFlag();
}
});
$.ajax({
beforeSend: function() {
show('ajax Call start for loadplayeronpitch');
},
url: '/home/checkUserTeam',
success: function(data) {
flag++;
data1 = data;
show('ajax Call complete for loadplayeronpitch');
checkFlag();
}
});
function checkFlag()
{
if (parseInt(flag) == parseInt(2))
{
loadUserTeampitch(data1);
}
}
});
</script>
相关文章:
- JQuery-重新加载Div并在点击时调用API
- 需要帮助调用API
- Froogaloop Vimeo API--Can't在就绪事件之外调用API方法
- Javascript:如何通过HTTPS和AJAX调用API
- 同步代码框 - 调用 API - 解析 JSON - 获取引用 - 保存新对象
- 为什么如果失败,我无法保留调用 api
- Cloudinary - 通过直接调用 API 上传,缺少文件
- 用户完成键入后,调整keyup事件以调用API
- 调用API中的API-jQuery/HHandlebars
- 当使用AJAX调用API时,网站在打开后重定向到index.php
- 在哪里调用API MVC模式
- 无法在JavaScript中调用api(跨源)
- Ajax没有在framework7的构建版本中调用API
- 如何使用node.js调用API,并在主体中包含JSON字符串
- 从CouchDB设计文档调用API
- 在路由器上点击时调用API
- 美元.试图调用API时出现错误
- AngularJS:服务调用API并返回JSON
- 如何在成功安装Firefox插件时调用API url
- 在后台调用API key,在WebExtension中调用内容脚本