我正在尝试显示带来搜索结果的时间。
像Google一样:(0.52秒)
我的项目是使用MVC 4构建的。
这就是我的想法。首先定义rightNow
,如下所示,然后获取用户执行搜索的时间(buttonclickedtime
),然后计算:rightNow - buttonclickedtime
以显示花费的时间。
@{
var rightNow = DateTime.Now;
var buttonclickedtime = ??
var message = rightNow - buttonclickedtime;
}
<p>It took @message sec. to fetch the results</p>
所以问题是:我怎样才能获得用户点击搜索按钮的时间?
答案 0 :(得分:2)
您可以尝试使用Stopwatch
Stopwatch s=new Stopwatch();
s.Start();
//Code to test
s.Stop();
var time= s.ElapsedMilliseconds
答案 1 :(得分:1)
这取决于您是否通过ajax加载搜索结果。如果是,那么可能最好的方法是使用javascript。将事件监听器附加到按钮单击并保存当前日期,如下所示:
var element = document.getElementById("yourbutton")
var before;
element.addEventListener('click', function() {
before = new Date();
// do your ajax here (load results)
}, false);
然后,当你ajax返回结果时,你调用
function onAjaxReturn()
{
var after = new Date();
// TODO: calculate the difference like res = after - before;
}
现在你有两个约会。如何获得差异并正确显示,请查看此问题 - How to calculate date difference in javascript
如果您不使用ajax加载搜索结果,则很难获得确切的时间。您还必须为按钮单击添加事件侦听器,然后获取当前日期,以某种方式将其序列化为字符串(例如)并将其作为参数传递给您的搜索请求。在代码隐藏中,您将进行搜索,并且您将返回datetime字符串以及结果(对字符串不执行任何操作)。然后你将不得不再次从字符串解析日期时间(在javascript中),获取当前时间(之后)并像上面发布的链接一样调整差异。
希望这有帮助