Вы пытаетесь получить доступ к ответу ajax до его появления. Код после console.log (urlReg) принадлежит функции readystatechange - но поскольку у вас есть jQuery, ИСПОЛЬЗУЙТЕ его .
var url = "somepage";
function validerBtn() {
console.log("before");
$("#loader").show();
$.getJSON(url, function(data) {
console.log("after", data);
// here you need to process the data which is in JSON format assuming the server sends application/json
$("#loader").hide();
});
}
У меня была та же проблема. Мы продали наше приложение пользователю, который был в другом часовом поясе, чем веб-сервер. Мы не хранили информации времени в UTC, но это на самом деле работало правильно. Время, отображенное в часовом поясе сервера, отображало точно 3 часа позади. Все, что мы должны были сделать, было, добавляет часовой пояс, выпадающий, таким образом, они могли выбрать свой часовой пояс для всего сайта (так как единственные пользователи приложения будут в их часовом поясе). Мы сохранили эту настройку и затем вставили функцию, чтобы взять все дисплеи даты и времени и преобразовать от одного часового пояса до другого использования пространства имен TimeZoneInfo. Это работает отлично.
К местному времени будет всегда на стороне сервера преобразовывать в физическое местоположение. У Вас есть несколько опций.
Я встретился с чем-то вроде этого до использования ASP.NET. Здесь была моя общая методология.
Я отправил JavaScript, чтобы сделать document.write. JavaScript определяет смещение клиента от GMT. Таким образом, можно отправить определенное время и затем позволить JavaScript сделать плюс/минус на нем.
Если Вы используете.NET 3.5, и Вы знаете часовой пояс, в котором находится пользователь, TimeZoneInfo является Вашим другом. Если Вы не используете.NET 3.5 существуют некоторые образцы P/Invoke вокруг для получения экземпляров TimeZone, но стоит избежать этого, если у Вас есть доступ к 3,5. (TimeZoneInfo имеет исторические данные и т.д. и обычно является предпочтительным способом пойти.)
Теперь установление, в котором находится часовой пояс Ваши пользователи, является другой проблемой - самый простой способ избежать, чтобы беспорядок дал им опции. (Получение смещения "теперь" только дает Вам ограниченную информацию.)
Мы столкнулись с той же или подобной проблемой с удаленными клиентами, звонящими в нашу базу данных через веб-сервисы, где база данных и клиенты находятся в различных часовых поясах.
Мы нашли самым легким дать набору данных команду не заботиться о часовых поясах, таким образом, времена не изменяются через границы часового пояса...
Мы создали служебный метод (SetAllDateModes), который преобразовывает все поля даты и времени в наборе данных таблицей - вот бизнес-конец (Foreach) и вызов, который устанавливает dateMode:
foreach (DataColumn dc in dt.Columns)
{
if (dc.DataType == typeof(DateTime))
{
dc.DateTimeMode = dateMode;
}
}
SetAllDateModes(dt, DataSetDateTime.Unspecified);
DateSetDateTime. Неуказанный не включает смещение, таким образом, нет никакого преобразования.
Я думал, что общее представление не состояло в том, чтобы локализовать дату и время, пока Вы не представляете его пользователь. Таким образом, если человек не собирается считать его, это остается в UTC, GMT, CUT. Одно дополнительное примечание пользуется библиотекой Date/Time, таким образом, Вы не должны волноваться к очень о проблемах изменения Летнего времени.