所以我有一个WEB API,例如我有这个方法:
public JSONResult GetUserInfo(string username)
{
Reddit reddit = new Reddit("bot12345", "12345"); //load reddit and login
reddit.GetSubmittedVideos(username);
var user = User.Get(username);
//rest of the code here
}
你可以看到我有这一行Reddit reddit = new Reddit("bot12345", "12345")
,这行约需2秒,因为它需要通过Reddit API登录。因此,每当有人调用GetUserInfo
方法时,我的代码将需要2秒以上的时间才能返回结果,因为它需要调用Reddit。
我想知道是否可以在我的GetUserInfo方法中加载Reddit对象,我只需要调用reddit.GetSubmittedVideos
。但我记得HTTP是无状态的,那可能吗?
为糟糕的英语道歉。
答案 0 :(得分:3)
HTTP 无状态,但ASP.NET有一个Session
对象,该对象与一个用户会话隔离,可以存储跨请求持续存在的数据。所以至少你可以这样做:
Reddit reddit = Session["reddit"] as Reddit;
if(reddit == null)
{
reddit = new Reddit("bot12345", "12345"); //load reddit and login
Session["reddit"] = reddit;
}
reddit.GetSubmittedVideos(username);
如果相同的Reddit
对象可用于所有用户会话,则可以使用Application
类而不是Session
。