我必須在asp.net web api方法中實現緩存,因爲我正在訪問來自第三方數據源的數據並且調用第三方數據源代價很高,數據只會每24小時更新一次。所以有Strathweb。我的幫助下已經實現了緩存這樣Webapi中的服務器端緩存和客戶端緩存
/// <summary>
/// Returns the sorted list of movies
/// </summary>
/// <returns>Collection of Movies</returns>
[CacheOutput(ClientTimeSpan = 86400, ServerTimeSpan =86400)]
public IEnumerable<Movie> Get()
{
return repository.GetMovies().OrderBy(c => c.MovieId);
}
/// <summary>
/// Returns a movie
/// </summary>
/// <param name="movie">movieId</param>
/// <returns>Movie</returns>
[CacheOutput(ClientTimeSpan = 86400, ServerTimeSpan = 86400)]
public Movie Get(int movieId)
{
var movie = repository.GetMovieById(movieId);
if (movie == null)
{
var httpResponseMessage = new HttpResponseMessage(HttpStatusCode.NotFound)
{
Content = new StringContent(string.Format("No movie with ID = {0}", movieId)),
ReasonPhrase = "Movie ID Not Found"
};
throw new HttpResponseException(httpResponseMessage);
}
return movie;
}
但在Strathweb,我已經看到兩個屬性之一是ClientTimeSpan及其他是ServerTimeSpan.I我不知道何時使用ClientTimeSpan以及何時使用ServerTimeSpan。在最簡單的術語中,我想了解何時使用服務器端緩存以及何時使用客戶端緩存以及兩者之間有什麼區別。
[類似的問題在SO](http://stackoverflow.com/questions/17287144/how-to-cache-net-web-api-requests- use-w-angularjs-http)可以幫助你。 – 2014-10-08 05:01:18