javascript - 如何在 .js 中延迟下一个 PHP 调用,直到之前的 PHP 调用返回答案?
问题描述
我的互联网服务提供商只是将并行 php 调用的数量减少到 10,这会杀死我的 .js
我是 .js 新手,但我一直在用朋友的复制粘贴代码设置这个网站。它对我们的小社区运作良好,直到我们的服务提供商做出改变。现在我必须修复它,我需要一些帮助。
.js 在这里:https ://snapseatlas.dk/snapseatlas070.js ,主页是:https ://snapseatlas.dk/index_hold.html
问题的关键部分是:
// ** Define some plant layers
// Slaaen
var layerSlaaen = L.geoJson(null,{
onEachFeature: popPlantenavn,
pointToLayer: function (feature, latlng) {return L.marker(latlng, {icon: pinSpurp});}
});
var urlbbox = 'php070/data.php?bbox='+bbox+'&species=Prunus spinosa';
$.getJSON(urlbbox, function (datab) {layerSlaaen.addData(datab)});
// Pors
var layerPors = L.geoJson(null,{
onEachFeature: popPlantenavn,
pointToLayer: function (feature, latlng) {return L.marker(latlng, {icon: pinPgreen});}
});
var urlbbox = 'php070/data.php?bbox='+bbox+'&species=Myrica gale';
$.getJSON(urlbbox, function (datab) {layerPors.addData(datab)});
// Ene
var layerEne = L.geoJson(null,{
onEachFeature: popPlantenavn,
pointToLayer: function (feature, latlng) {return L.marker(latlng, {icon: pinEblue});}
});
var urlbbox = 'php070/data.php?bbox='+bbox+'&species=Juniperus';
$.getJSON(urlbbox, function (datab) {layerEne.addData(datab)});
它继续,定义了大约 20 种植物,但我在这里只展示了 3 种。
由于代码一直在工作,直到现在,它将这 20 个 php 请求发送到 php 脚本,然后向 sql server 请求数据。当时的 10 次 php 调用的新限制导致后半部分调用返回错误。
如何更改此 .js 以定义所有 20 个植物并填充数据?
我最初的想法是在每次校准之间等待 1 秒。但是.js中似乎不存在wait(),它会使页面在加载时变得很慢。
我也一直在研究 Callback、Promises 和 Async/Await 结构。但我无法真正理解它们——尽管它们似乎是解决方案。
解决方案
推荐阅读
- r - R:“x”值相同,而 lambda 值在 boxcoxnc 函数中的重新划分太重
- ruby-on-rails - Rails:使用 Rails 和 HTTParty 将 JSON 发布到 API
- java - 将 JSON 数据传递到另一个活动并访问新活动中 JSON 数组(和位置)的某些部分
- javascript - 使用 onclick 动态创建元素只执行最后一个元素
- angularjs - AngularJS 问题:$sce:insecurl 尽管 $sce.trustAsResourceUrl
- python - Jupyter notebook 在浏览器中显示空白页
- sql - 确定 2 个表应该使用哪些键来加入 SQL Server
- javascript - 使用 JavaScript 延迟一段时间后功能会起作用吗?
- php - 使用 IF 在 PHP 中一次检查多个变量
- clojure - 如何指定自定义指定地图的矢量