<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>程式片斷  - ASP</title><link>http://blog.blueshop.com.tw/ajun/category/708.aspx</link><description>程式片斷  - ASP</description><managingEditor>孤影</managingEditor><dc:language>zh-TW</dc:language><generator>.Text Version 0.95.2004.101</generator><item><dc:creator>孤影</dc:creator><title>玩玩Ajax系列 - Dom在asp與asp.net</title><link>http://blog.blueshop.com.tw/ajun/archive/2007/03/13/49972.aspx</link><pubDate>Tue, 13 Mar 2007 18:46:00 GMT</pubDate><guid>http://blog.blueshop.com.tw/ajun/archive/2007/03/13/49972.aspx</guid><wfw:comment>http://blog.blueshop.com.tw/ajun/comments/49972.aspx</wfw:comment><comments>http://blog.blueshop.com.tw/ajun/archive/2007/03/13/49972.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.blueshop.com.tw/ajun/comments/commentRss/49972.aspx</wfw:commentRss><trackback:ping>http://blog.blueshop.com.tw/ajun/services/trackbacks/49972.aspx</trackback:ping><description>&lt;p&gt;前言&lt;/p&gt; &lt;p&gt;這陣子微軟似乎正在大力的推ajax,&lt;br&gt;而blog中如果有個ajax的資料,似乎也能增加些瀏覽數..&lt;/p&gt; &lt;p&gt;不過這次是因為某個專案的功能,才會有這篇的...&lt;/p&gt; &lt;p&gt;話說,因為支援別人寫的一個用了大量ajax的案子,&lt;br&gt;但是這個案子原本是用asp,而我則是要用asp.net 1.1開發新功能,&lt;/p&gt; &lt;p&gt;而原本的程式中,&lt;br&gt;是使用Microsoft.XMLDOM將要傳送的資料打包後post到後端,&lt;br&gt;程式碼如下(前端javascript的片段)&lt;/p&gt; &lt;p&gt;xmlData = "&amp;lt;xml&amp;gt;..................&amp;lt;/xml&amp;gt;" &lt;br&gt;var xmlDom=new ActivexObject("Microsoft.XMLDOM")&lt;br&gt;xmlDom.load("domtest.xml") &lt;p&gt;而後端是用asp.一樣用Microsoft.XMLDOM來接收&lt;br&gt;而接收的程式如下 &lt;p&gt;Dim mydoc&lt;br&gt;Set mydoc=Server.CreateObject("Microsoft.XMLDOM")&lt;br&gt;mydoc.async=false&lt;br&gt;mydoc.load(Request) &lt;p&gt;&amp;nbsp; &lt;p&gt;不過,現在問題來了,&lt;br&gt;1.前端用new ActiveObject("Microsoft.XMLDOM")在firefox下是不會動的.&lt;br&gt;2.而且也不適合再用Server.CreateObject來建立Microsoft.XMLDOM,&lt;br&gt;3.因為我是用.net 1.1,所以不能像asp這樣直接load(Request) &lt;p&gt;-- &lt;p&gt;1.&lt;/p&gt; &lt;p&gt;在ie中使用xmlhttp是用new ActiveXObject("Microsoft.XMLHTTP");&lt;br&gt;而在firefox中則是用new XMLHttpRequest();&lt;br&gt;這個之前有說過.(&lt;a href="http://blog.blueshop.com.tw/ajun/archive/2005/04/26/3402.aspx" target="_blank"&gt;使用xmlhttp讀取遠端檔案&lt;/a&gt;)&lt;br&gt;那Microsoft.XMLDOM呢??&lt;br&gt;其實,在firefox是不需要建立這個的.&lt;br&gt;只要直接使用下面的語法就可以了....&lt;/p&gt; &lt;p&gt;xml = "&amp;lt;xml&amp;gt;..................&amp;lt;/xml&amp;gt;"; &lt;p&gt;xmlHttp.open("POST", url);&lt;br&gt;xmlHttp.setRequestHeader("Content-Type", "text/xml");&lt;br&gt;xmlHttp.send(xml); &lt;p&gt;2.&lt;/p&gt; &lt;p&gt;.net 1.1中的Microsoft.XMLDOM呢?&lt;br&gt;如果注意一下前端送過來的資料就可以知道,XMLDOM實際上就是xml的內容,&lt;br&gt;所以在.net中是使用XMLDocument去接收,&lt;br&gt;所以程式碼如下&lt;/p&gt; &lt;p&gt;XmlDocument _xmldoc = new XmlDocument();&lt;br&gt;_xmldoc.LoadXml(xmlData); &lt;p&gt;而xmlData就是接收到的xml結構內容,但是.net要怎麼接收呢?? &lt;p&gt;3. &lt;p&gt;在.net的Request物件跟asp的不同,不能直接用_xmldoc.Load(Request)&lt;br&gt;而.net中,Requet有個InputStream的屬性,&lt;br&gt;而這就是我們需要的,只是他是Stream,所以我們在接收的時候需要用StreamReader去接收,&lt;br&gt;所以接收的程式如下 &lt;p&gt;StreamReader reader = new StreamReader(Request.InputStream);&lt;br&gt;string xmlData = reader.ReadToEnd(); &lt;p&gt;以上,問題到此就解決了. &lt;p&gt;最後附上一個測試用的範例,&lt;br&gt;使用ajax的方式新增Rss item,&lt;br&gt;在ie跟firefox上都能work. &lt;p&gt;範例網址 : &lt;a title="http://vip.blueshop.com.tw/ajun/item.htm" href="http://vip.blueshop.com.tw/ajun/item.htm"&gt;http://vip.blueshop.com.tw/ajun/item.htm&lt;/a&gt; &lt;p&gt;其中,前端的部分,程式都在頁面中了,&lt;br&gt;而後端接收的程式(ItemSave.aspx)的原始碼在這 &lt;a title="http://vip.blueshop.com.tw/ajun/sample/ItemSave.aspx.cs.txt" href="http://vip.blueshop.com.tw/ajun/sample/ItemSave.aspx.cs.txt"&gt;http://vip.blueshop.com.tw/ajun/sample/ItemSave.aspx.cs.txt&lt;/a&gt; &lt;p&gt;有興趣的就玩玩吧!!&lt;/p&gt;&lt;img src ="http://blog.blueshop.com.tw/ajun/aggbug/49972.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>孤影</dc:creator><title>ASP使用xmlhttp結果產生一堆暫存檔</title><link>http://blog.blueshop.com.tw/ajun/archive/2006/01/25/16869.aspx</link><pubDate>Wed, 25 Jan 2006 06:47:00 GMT</pubDate><guid>http://blog.blueshop.com.tw/ajun/archive/2006/01/25/16869.aspx</guid><wfw:comment>http://blog.blueshop.com.tw/ajun/comments/16869.aspx</wfw:comment><comments>http://blog.blueshop.com.tw/ajun/archive/2006/01/25/16869.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.blueshop.com.tw/ajun/comments/commentRss/16869.aspx</wfw:commentRss><trackback:ping>http://blog.blueshop.com.tw/ajun/services/trackbacks/16869.aspx</trackback:ping><description>&lt;p&gt;今天遇到一個問題,&lt;br&gt;
就是主機的硬碟滿了,&lt;br&gt;
不過,不是因為資料庫滿了,&lt;br&gt;
而是因為IE的暫存資料夾滿了,&lt;br&gt;
看了一下資料夾內的檔案,&lt;br&gt;
是一堆xml檔,而xml的內容WS的查詢結果,&lt;br&gt;
查了一下,原來是主機上有ASP透過MSXML2.XMLHTTP查詢遠端的web service,&lt;br&gt;
結果在主機的IE暫存資料夾產生一堆xml檔(WS的回傳資料),&lt;br&gt;
而每次使用該asp檔就會產生一個xml檔,&lt;br&gt;
所以導致主機發生硬碟空間不足的問題.&lt;br&gt;
但,這似乎不是bug...&lt;br&gt;
所以只好將原本的xmlhttp物件改用ServerXMLHTTP取代.&lt;br&gt;
&lt;/p&gt;&lt;p&gt;參考網址 : &lt;a href="http://www.iis-resources.com/modules/newbb/print.php?form=1&amp;amp;topic_id=4032&amp;amp;forum=2&amp;amp;order=ASC&amp;amp;start=0"&gt;http://www.iis-resources.com/modules/newbb/print.php?form=1&amp;amp;topic_id=4032&amp;amp;forum=2&amp;amp;order=ASC&amp;amp;start=0&lt;/a&gt;&lt;/p&gt;&lt;img src ="http://blog.blueshop.com.tw/ajun/aggbug/16869.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>孤影</dc:creator><title>數值轉字串,不足的位數補零</title><link>http://blog.blueshop.com.tw/ajun/archive/2005/11/02/13229.aspx</link><pubDate>Wed, 02 Nov 2005 14:33:00 GMT</pubDate><guid>http://blog.blueshop.com.tw/ajun/archive/2005/11/02/13229.aspx</guid><wfw:comment>http://blog.blueshop.com.tw/ajun/comments/13229.aspx</wfw:comment><comments>http://blog.blueshop.com.tw/ajun/archive/2005/11/02/13229.aspx#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://blog.blueshop.com.tw/ajun/comments/commentRss/13229.aspx</wfw:commentRss><trackback:ping>http://blog.blueshop.com.tw/ajun/services/trackbacks/13229.aspx</trackback:ping><description>&lt;p&gt;   之前寫ASP的時候,&lt;br /&gt;   為了讓日期的格式看起來是&lt;br /&gt;   2005/04/02&lt;br /&gt;   而不是&lt;br /&gt;   2005/4/2&lt;/p&gt;&lt;p&gt;   所以寫了一個FillZero的函數來處理,&lt;/p&gt;&lt;div style="BORDER-RIGHT: #999999 1px dotted; BORDER-TOP: #999999 1px dotted; BORDER-LEFT: #999999 1px dotted; WIDTH: 100%; BORDER-BOTTOM: #999999 1px dotted; BACKGROUND-COLOR: #e1ffff"&gt;Function   FillZero(intValue, intLen)&lt;br /&gt;       If Len(intValue) &amp;lt; intLen Then&lt;br /&gt;           FillZero = String(intLen - Len(intValue),   "0") &amp;amp; intValue&lt;br /&gt;       Else&lt;br /&gt;           FillZero = Left(CStr(intValue), intLen)&lt;br /&gt;       End If&lt;br /&gt;   End Function&lt;/div&gt;&lt;p&gt;   後來在寫ASP.Net時也是需要這樣的轉換,&lt;br /&gt;   所以就直接將FillZero的函數改成vb.net的,&lt;br /&gt;   雖然這樣也是可以用,不過後來發現了更簡單的方法...&lt;br /&gt;   就是直接用ToString的功能...&lt;br /&gt;   只要直接在ToString後面加參數,如ToString("00")&lt;br /&gt;   就可以達到補足位數的動作了!&lt;br /&gt;   有興趣的可以試試下面這段程式...&lt;/p&gt;&lt;div style="BORDER-RIGHT: #999999 1px dotted; BORDER-TOP: #999999 1px dotted; BORDER-LEFT: #999999 1px dotted; WIDTH: 100%; BORDER-BOTTOM: #999999 1px dotted; BACKGROUND-COLOR: #e1ffff"&gt;for   i as integer = 1 to 100&lt;br /&gt;       response.write(i.tostring("000"))&lt;br /&gt;   next&lt;/div&gt;&lt;p&gt;    &lt;/p&gt;&lt;p&gt;   &lt;br /&gt;    &lt;/p&gt;&lt;img src ="http://blog.blueshop.com.tw/ajun/aggbug/13229.aspx" width = "1" height = "1" /&gt;</description></item></channel></rss>