时间到期时调用操作方法

时间:2015-02-28 14:41:19

标签: javascript asp.net-mvc

在一个模型类中,我有成员DateTime TimeExpired。如何在时间到期后自动调用某些操作方法?当时间到期时,我需要做一些计算并将它们存储在数据库中。 e.q.该时间段可以是一天,一个月等。

1 个答案:

答案 0 :(得分:1)

DateTime TimeExpired

不适合使用JavaScript。

1)我希望这个日期是用Utc设置的,比如:

model.TimeExpired = DateTime.UtcNow.AddMinutes(10);

否则你在客户端会遇到问题。我强烈建议删除此代码并将其重写为

DateTimeOffset TimeExpiredUtc

2)当您在客户端上有UTC日期时,您可以使用moment.js库来解析时间并设置超时:

// get number of milliseconds elapsed since 1 January 1970 00:00:00 UTC
var now = moment().utc().valueOf();
// parse string object and get number of milliseconds
var when = moment(TimeExpiredUtc).valueOf();

// calculate the difference
var timeout = when - now;
setTimeout(function() {
    // place your ajax code to call asp.net mvc action here
}, timeout);

我不确定上面的代码是否正确,但你明白了。

3)请记住,如果客户端将关闭选项卡,则不会调用此方法。我希望你没关系。因为如果不是,你需要完全不同的方法。