給出的通用處理器:ASP.net緩存ASHX文件服務器端
<%@ WebHandler Language="C#" Class="autocomp" %>
using System;
using System.Text;
using System.Text.RegularExpressions;
using System.Web;
using System.Web.UI;
public class autocomp : IHttpHandler {
public void ProcessRequest (HttpContext context) {
context.Response.ContentType = "application/json";
context.Response.BufferOutput = true;
var searchTerm = (context.Request.QueryString["name_startsWith"] + "").Trim();
context.Response.Write(searchTerm);
context.Response.Write(DateTime.Now.ToString("s"));
context.Response.Flush();
}
public bool IsReusable {
get {
return false;
}
}
}
我怎麼會server side
緩存文件1小時基礎上,name_startsWith
查詢字符串參數?隨着網絡用戶控制它很簡單:
<%@ OutputCache Duration="120" VaryByParam="paramName" %>
但我一直在尋找了一段時間做同樣的與通用處理器(ashx
)文件並不能找到任何解決方案。
你會在客戶端上使用[這個東西(緩存http://stackoverflow.com/questions/1109768/how-to-use-output-caching-on -ashx-handler),然後在您要獲取數據時使用HttpContext.Cache將實際數據用於服務器端緩存。但是你不能爲此使用任何類型的輸出緩存。此外,請記住確保您的HttpContext.Cache代碼是線程安全的。 ;) – Tombala
在下面編輯我的答案以回答對帖子的更改。 –