Проблема с AJAX, JavaScript, ASP.Net MVC

Всем привет!

  • Я пишу сайт Asp.Net MVC 2.
  • У меня есть TimeController и TimeView, CountDownHelper для отображения времени на странице TimeView.
  • Также у меня есть JavaScript, который обновляет текущее время, которое используется в CountDownHelper.

Мне нужно вызвать AJAX из этого JavaScript, чтобы получить текущее время на сервере. Как я могу это сделать? Пожалуйста, помогите мне! Я должен сделать это около нескольких часов!

Ниже вы можете увидеть этот javaScript и, в конце концов, мою попытку вызвать AJAX. Я пытался написать GetServerTime.html несколькими способами, но ни один из них не работал. (((

 //countDown.js  
function calcage(secs, num1, num2) 
{
    s = ((Math.floor(secs / num1)) % num2).toString();
    if (LeadingZero && s.length < 2)
        s = "0" + s;
    return "<b>" + s + "</b>";
}

function CountBack(secs) 
{
    if (secs < 0) 
    {
        location.reload(true);
        document.getElementById("cntdwn").innerHTML = FinishMessage;
        return;
    }

    //difference between recieve time and current client time
    diff = new Date(new Date() - clientTime);
    targetD = new Date(TargetDate);
    serverD = new Date(serverDate);
    currentServerDate = new Date(serverD.getTime() + diff.getTime());

//targetD
    leftD = new Date(targetD.getTime() - currentServerDate.getTime());

    secs = leftD.getTime() / 1000;

    DisplayStr = DisplayFormat.replace(/%%D%%/g, calcage(secs, 86400, 100000));
    DisplayStr = DisplayStr.replace(/%%H%%/g, calcage(secs, 3600, 24));
    DisplayStr = DisplayStr.replace(/%%M%%/g, calcage(secs, 60, 60));
    DisplayStr = DisplayStr.replace(/%%S%%/g, calcage(secs, 1, 60));

    document.getElementById("cntdwn").innerHTML = DisplayStr;
    if (CountActive)
        setTimeout("CountBack(" + (secs + CountStepper) + ")", SetTimeOutPeriod);
}

function putspan(backcolor, forecolor) 
{
    document.write("<span id='cntdwn' style='background-color:" + backcolor +
                "; color:" + forecolor + "'></span>");
}

if (typeof (BackColor) == "undefined")
    BackColor = "white";
if (typeof (ForeColor) == "undefined")
    ForeColor = "black";
if (typeof (TargetDate) == "undefined")
    TargetDate = "12/31/2020 5:00 AM";
if (typeof (serverDate) == "undefined")
    serverDate = "12/31/2020 5:00 AM";
if (typeof (DisplayFormat) == "undefined")
    DisplayFormat = "%%D%% Days, %%H%% Hours, %%M%% Minutes, %%S%% Seconds.";
if (typeof (CountActive) == "undefined")
    CountActive = true;
if (typeof (FinishMessage) == "undefined")
    FinishMessage = "";
if (typeof (CountStepper) != "number")
    CountStepper = -1;
if (typeof (LeadingZero) == "undefined")
    LeadingZero = true;


CountStepper = Math.ceil(CountStepper);
if (CountStepper == 0)
    CountActive = false;
var SetTimeOutPeriod = (Math.abs(CountStepper) - 1) * 1000 + 990;
putspan(BackColor, ForeColor);
var dthen = new Date(TargetDate);
var dtServ = new Date(serverDate);
var dnow = new Date();
if (CountStepper > 0)
    ddiff = new Date(dnow - dthen);
else
    ddiff = new Date(dthen - dtServ);
    //ddiff = new Date(TargetDate - serverDate);
//ddiff = new Date(dthen - dnow);
gsecs = Math.floor(ddiff.valueOf() / 1000);
CountBack(gsecs);

alert("Start");
alert(serverDate);

//AJAX CALL ???? 
//How to call async JavaScript?
//Which must be GetServerTime.html

$.get('Views/GetServerTime.html', function(data) {
    serverDate = data;
    clientTime = new Date();    
});

alert(serverDate);**
1
задан Jason Berkan 7 October 2010 в 16:59
поделиться