ASP網頁開發過程中的幾個小技巧_ASP教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:用asp自動解析網頁中的圖片地址
      現在基于WEB頁的HTML的編輯器在新聞系統,文章系統中用得越來越廣,一個網頁一粘就可以保持原來的樣式,同時圖片也可以在這個頁中保持。但是在使用過程中,如果所粘貼頁中的圖片被刪除,就會在

      ASP是Microsoft公司推出的一種用以取代通用網關接口的技術,英文全稱Active Server Pages。它是一個Web服務器端的運行環境。ASP本身包含了VBScript和javascript引擎,使得腳本可以直接嵌入HTML中。現將我們在ASP運用過程中的幾個小技巧與大家分享。

      一、新聞欄

      大多數網頁上有新聞欄,用以顯示最近新聞的主題,點擊此主題即可查看詳細報道。倘若每天都一條條寫在網頁上,再依次建立鏈接太過麻煩。如何讓其可以根據文件自動更新呢?

      1.預備工作:

      1)建一個文件夾,起名為"news",假設存于D:/ASP/目錄下;

      2)把每條新聞的詳細內容寫入文件,且此文件的命名形式為:x (newstime).htm。其中x為此條新聞的主題,newstime為此條新聞發布的時間(按年-月-日順序寫)。為什么要這樣寫呢?看了下面的算法思想和源程序就知道了。

      2.算法思想:對于news文件夾中的文件,依據它們文件名中新聞發布的時間(即括號內的內  容),從大到小排序。這樣一來,最新的新聞排在最上面,只要在網頁相應位置顯示 news文件夾中最上面的若干個文件名,因為文件名的命名方式如1中所述,就可以在新聞欄中顯示最新新聞了。

      3.源程序段(用VBScript編寫的)

      以下為引用的內容:
      <%
      Dim fs, f, f1, fc, filenum
      dim count
      dim i,j,t1,t2
      dim file(100)
      dim mystr(100) '標志文件中日期的字符串
      count=0
      Set fs = CreateObject("Scripting.FileSystemObject")
      Set f = fs.GetFolder("D:/ASP/news ")
      Set fc = f.Files
      for each f1 in fc
      count=count 1 '計文件個數
      file(count)=fs.getbasename(f1) '標記文件基名
      mypos=InStr(1, file(count), "(") ')在文件基名中的位置
      '文件基名中的日期字符串
      mystr(count) = Mid(file(count), mypos 1, Len(file(count)) - (mypos 1))
      next
      for i=1 to count
      for j=1 to count-i
      if mystr(j)<mystr(j 1) then
      t1=file(j)
      file(j)=file(j 1
      file(j 1)=t1
      t2=mystr(j)
      mystr(j)=mystr(j 1)
      mystr(j 1)=t2
      end if
      next
      next
      j=1
      if count<10 then '新聞欄中共顯示10條新聞
      temcount=count
      else
      temcount=10
      end if
      do while j<=temcount%>
      <a href="file:///D:/ASP/news/<%=file(j)%>.htm" target="new_window"><%=file(j)%> </a>
      <%
      j=j 1
      loop
      %>
        
      4.新聞欄內容更新:

      只要養成良好的書寫習慣,使得新聞的名稱遵照1的要求,再把寫好的文件存入news文件夾,新聞欄就會自動顯示出最新的10條新聞了。

      二、公告欄

      除了新聞欄之外,較常用的就是公告欄了,公告欄主要用來顯示一些重要的通知。當然這些通知是要經常變化的。讓用戶每次更改公告內容時都到源程序里去修改嗎?當然不行,我們必須提供一個維護的界面給用戶,使得用戶只要輸入通知,網頁上的公告欄里自然就會顯示通知內容了。

      1.解決這一問題的關鍵在于靈活應用FileSystemObject對象和TextStream對象。在實際應用中,你無需自行建立TextStream對象,因為只要利用FileSystemObject對象打開了文件,系統便自動建立TextStream對象。也就是說,一旦調用OpenTextFile或CreateTextFile方法,便會傳回TextStream對象。

      2.所需相關文件有三個:更新.asp、公告.asp、維護文本.txt,把它們存入d:/ASP/maintain目錄下。

      3.三個文件的主要功能和源程序段:

      1)更新.asp

      主要功能是讓用戶輸入欲顯示的公告,檢驗輸入內容是否為空,若不為空,則提交給”公告.asp”程序處理。

      以下為引用的內容:

      <html>
      <head>
      <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
      <meta name="GENERATOR" content="Microsoft FrontPage 4.0">
      <meta name="ProgId" content="FrontPage.Editor.Document">
      <title>更新公告欄內容</title>
      </head>
      <body>
      <script language=vbscript>
      function datacheck()
      dim msg,errflag
      errflag=true
      if len(trim(maintain.t1.value))=0 then
      focusto(0)
      errflag=false
      msg="請輸入需提交的公告內容"
      end if
      if (errflag=false) then
      msgbox msg,64,"oh no!"
      exit function
      end if
      datacheck=errflag
      maintain.submit
      end function
      sub focusto(x)
      document.maintain.elements(x).focus()
      end sub
      </script>
      ①<form method="POST" action="公告.asp" name="maintain">
      <p><input type="text" name="t1" size="84"><input type="reset" value="重寫" name="B2">
      <input type="button" value="提交" name="B1" onclick="datacheck()"></p>
      <hr color=#FF99FF size=1>
      </form>
      </body>
      </html>

      語句①中的action="公告.asp"部分,指出了在form提交后要啟動的程序為“公告.asp”。

      2)公告.asp

      通過FileSystemObject對象和TextScream對象對"維護文本.txt"文件進行讀寫操作,使得此文件最上面5行的內容為要在公告欄里顯示的公告。

      以下為引用的內容:

      <%
      dim str
      str=request.form(t1)
      dim s(5)
      const forreading=1,forwriting=2
      dim fso,myfile
      set fso=server.createobject("scripting.FileSystemObject")
      set myfile=fso.opentextfile("維護文本.txt",forreading)'以Reading模式打開文件
      for i=1 to 5 '公告欄共顯示5條公告
      s(i)=myfile.readline'讀取文件內容
      next
      myfile.close
      set myfile=fso.opentextfile("維護文本.txt",forwriting,true) '以writing模式打開文件
      myfile.writeline str
      for i=1 to 4
      myfile.writeline s(i) '將數據寫回文件
      next
      myfile.close
      %>

      3)維護文本.txt

      此文件開始為空,從”更新.asp”顯示的界面輸入公告后,此文件內容被自動寫入。

      4.在主頁文件(通常是default.asp)欲顯示公告位置的代碼段中加入如下代碼,即可顯示出更新后的公告。

      以下為引用的內容:

      <marquee scrollamount="2" scrolldelay="50" direction="up" width="223" height="133" id="a" onmouseover="a.stop()" onmouseout="a.start()">'公告欄上下滾動
      <%
      Dim s(20)
      Dim fso, MyFile
      Set fso = CreateObject("Scripting.FileSystemObject")
      Set MyFile = fso.OpenTextFile("D:/ASP/maintain/維護文本.txt",1,true)
      for i=1 to 5
      ReadLineTextFile=MyFile.ReadLine
      s(i)=ReadLineTextFile
      response.write "★ " & s(i)
      response.write "<br>"
      next
      %>
      </marquee>

      上述兩個小技巧舉一反三,可以解決很多此類問題。網頁設計愛好者們不妨一試。

      分享:session和cookie的最深刻理解
      先說session 對SESSION的爭論好象一直沒有停止過,不過幺麼能理解SESSION的人應該占90以上。 但還是講講,別嫌老~ 有一些人贊成用SESSION,有一些人不贊成。但這個問題到底要怎么說。不妨聽聽

      來源:模板無憂//所屬分類:ASP教程/更新時間:2008-08-22
      相關ASP教程