Я, похоже, не могу решить эту проблему.Async JavaScript Callback
Я использую JavaScript API Maxmind GeoIP2 с асинхронным обратным вызовом, чтобы вернуть широту, долготу и подразделение или регион.
<script type="text/javascript" src="//js.maxmind.com/js/apis/geoip2/v2.1/geoip2.js"></script>
<!--Html tags ... -->
<script type="text/javascript">
geoip2.city(
function (response) {
var latitude = "";
var longitude = "";
var region = "";
latitude = response.location.latitude;
longitude = response.location.longitude;
region = response.subdivisions[0].iso_code;
//Other operations.
},
function (error) {
try {
console.log(error);
}
catch (ex) {
alert(ex);
}
}
);
</script>
<!--Html tags ... -->
<script type="text/javascript">
$(document).ready(function() {
//Synchronous JavaScript against the DOM.
});
</script>
Эти значения должны затем вернуться и записываются в DOM в качестве веб-форм ASP.NET панель Update, которая делает автоматическое постбэк на сервер. Затем сервер выполняет поиск в пользовательской базе данных и возвращает ближайшие 50 или около того местоположений, как указывает на карту Google, которая отображается при обратной передаче, передавая документ jQuery, готовый к анонимной функции.
Конечно, это не то, что происходит. Все происходит не последовательно. (Я бы не ожидал, что это, мне просто нужно знать правильный путь для решения этой проблемы.)
Я хотел бы добавить еще пару вещей:
- Он работал до Maxmind переход от старого синхронного
JavaScript API вызывает этот асинхронный API обратного вызова. - Это не мой код или подход. Я унаследовал эту красоту.
Это, я считаю, это правильный подход к этой проблеме. Чтобы ответить на ваш вопрос, я не реализовал его. В настоящее время я вернусь (временные ограничения) к наследию API Maxmind GeoIP, требующему широты, долготы и региона. Но ваш вклад был оценен. –
Дополнительная информация для других пользователей, которые хотели бы использовать старый sync Maxmind GeoIP Legacy JavaScript API вместо обратных вызовов: http://dev.maxmind.com/geoip/legacy/javascript. Используя API города и функции geoip_region(), geoip_latitude(), geoip_longitude(). Я бы рекомендовал использовать обратные вызовы и подход by @ drjimmie1976, хотя если у вас есть время для реализации. –
@ user888298 Если бы у нас было время (переконфигурировать) все, как мы хотели! ;) –