显示投放搜索结果所需的时间

时间:2014-06-23 07:35:54

标签: c# asp.net-mvc datetime

我正在尝试显示带来搜索结果的时间。

像Google一样:(0.52秒)

google search result example

我的项目是使用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>

所以问题是:我怎样才能获得用户点击搜索按钮的时间?

2 个答案:

答案 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中),获取当前时间(之后)并像上面发布的链接一样调整差异。

希望这有帮助

相关问题