首先必須了解,什麼是動態JS?
就是動態頁加載的js文件時,根據用戶的登陸的不同,所呈現的JS內容是變化的.
需要指出的,該js文件在客戶端看來任何用戶年請求的文件名和路徑是一樣的.
JS文件本身的內容是因用戶不同而不同的.
163在博客登陸時用到了這一點.不過從實現上來看,它用的是php.
這里我要介紹的是在asp.net(C#)里實現.
1.思路-->能過asp.net來處理js文件.即通過aspnet_isapi.dll來處理js文件.
2.在IIS里設置.
2.處理類:
using System;
using System.Web;
namespace mobileweb
{
/// <summary>
/// Summary description for HttpHander_Js.
/// </summary>
public class HttpHander_Js:System.Web.IHttpHandler,System.Web.SessionState.IRequiresSessionState
{
public HttpHander_Js()
{
//
// TODO: Add constructor logic here
//
}
#region 方法重載
public void ProcessRequest(HttpContext context)
{
string alert;
if(context.Session["username"]==null)//find_session(context,"username")
{
//context.Session.Add("username","user");
alert="還沒登陸";
}
else alert=context.Session["username"].ToString();
string js="function aaa(){ alert('"+alert+"');}";
context.Response.ContentType="application/x-javascript";
context.Response.Write(js);
}
public bool IsReusable
{
get
{
return true;
}
}
#endregion
}
}
注:其中有一個JS函數.
4.web.config設置
加入如下段:
<httpHandlers>
<add verb="*" path="js/*ts.js" type="mobileweb.HttpHander_Js,mobileweb" />
</httpHandlers>
而后對于任于訪問以ts結尾的js文件都將返回
aaa()
{
alert('{username}');//username為用戶名
}
具體在網頁中的引用:
<script src="/myvweb/js/tasdfasdfasdtts.js"></script>