山德的愚行  

首先必須了解,什麼是動態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>

posted on 2007-10-11 17:51  夜之悲哀  阅读(869)  评论(5编辑  收藏  举报