【发布时间】:2010-10-03 21:19:15
【问题描述】:
大家好!
- 我正在编写 Asp.Net MVC 2 站点。
- 我有 TimeController 和 TimeView,CountDownHelper 用于 TimeView 页面上的渲染时间。
- 我还有更新当前时间的 JavaScript,用于 CountDownHelper。
我需要从此 JavaScript 调用 AJAX 以获取服务器上的当前时间。 我该怎么做?请帮我!我必须完成大约几个小时!
您可能会在下面看到这个 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);**
【问题讨论】:
-
“异步 JavaScript”是什么意思?
-
异步调用JavaScript,即不刷新所有页面
标签: javascript asp.net-mvc ajax