2015年9月14日 星期一

[jQuery] jQuery UI 1.9.x 的 Dialog

jQuery UI 1.9.x 的 Dialog


轉自:http://blog.farmer.idv.tw/?p=1727


將 jQuery UI 1.8.x 昇上 1.9.x 後發現, FireBug 上顯示了一個

Error: cannot call methods on dialog prior to initialization; attempted to call method ‘close’

問題是指向的是 jQuery.js

測了一下 jQuery + jQuery UI 的版本組合後斷定問題應該在 jQuery UI 1.9.x 所支援的 Dialog, 不知是做了什麼變動, 導致過去能支援的應用, 如今卻變成了問題了.

google 後只發現有人回應了相同的問題, 但還沒發現明確的問題所在與確切的解決方案….. 哀! 新的折磨要開始了…

比對 jQuery UI 1.9.1 與 1.8.24 的 jquery.ui.dialog.js 發現 $.widget 內的原來的 destroy 變成 _destory 了, 而且 close 的做法有相當大的變動, 1.9.1 的 close 先添了兩道判斷

if ( !this._isOpen ) {
  return;
}

if ( false === this._trigger( "beforeClose", event ) ) {
  return;
}
驗證後, 發現果然是新的 dialog close 機制造成的. 小修改相關於 dialog.close() 的引用後, 錯誤就消失了.

面對新機制, 處理動態性的 dialog 機制時 譬如 ajax 後的 dialog 引用, 必須先明確的 initialization (將 autoOpen 設為 false), 如此後續的 open, close 等流程處理就可避免類似未 initialization 的錯誤困擾了. 這個問題該歸咎於早先撰寫習慣不好, 1.8.x 其實也有相同的機制, 只是檢測沒有 1.9.x 嚴謹而已.

正式調整到 jQuery 1.8.2 + jQuery UI 1.9.1 的組合, 測試 251home 實驗站.

2015年9月4日 星期五

移除 XML 中 namespace 方法



Form: http://jesily-tw.blogspot.tw/2014/07/xml-namespace.html


移除 XML 中 namespace 方法

      //Implemented based on interface, not part of algorithm
        public  string RemoveAllNamespaces(string xmlDocument)
        {
            XElement xmlDocumentWithoutNs = RemoveAllNamespaces(XElement.Parse(xmlDocument));

            return xmlDocumentWithoutNs.ToString();
        }

        //Core recursion function
        private  XElement RemoveAllNamespaces(XElement xmlDocument)
        {
            if (!xmlDocument.HasElements)
            {
                XElement xElement = new XElement(xmlDocument.Name.LocalName);
                xElement.Value = xmlDocument.Value;

                foreach (XAttribute attribute in xmlDocument.Attributes())
                    xElement.Add(attribute);

                return xElement;
            }
            return new XElement(xmlDocument.Name.LocalName, xmlDocument.Elements().Select(el => RemoveAllNamespaces(el)));
        }

2015年7月14日 星期二

如何設定成wifi 熱點




常用 netsh 指令

1. 快速設定 (適用於首次設定 Windows 8 電腦,執行完以下指令後需再設定網路共用)

netsh wlan set hostednetwork mode=allow ssid=MyWin8SSID key="122459087"
netsh wlan start hostednetwork
netsh wlan show hostednetwork
2. 顯示主控網路狀態

netsh wlan show hostednetwork
 3. 顯示主控網路狀態

netsh wlan show hostednetwork setting=security
 4. 停止主控網路服務 ( 即關閉 Wi-Fi 無線熱點服務 )

netsh wlan stop hostednetwork
5. 啟用主控網路服務 ( 只要先前設定過網路共用,直接執行以下指令,即可立刻啟用熱點功能 )

netsh wlan start hostednetwork
 6. 重設 Wi-Fi 熱點連接密碼

netsh wlan set hostednetwork key="請設定你的WiFi密碼"
netsh wlan refresh hostednetwork key
7. 更改熱點名稱 ( SSID Name ),請盡量不要用中文命名!

netsh wlan set hostednetwork ssid="你的SSID名稱"




from: http://win.dyu.edu.tw/winap.htm

2015年7月11日 星期六

Fortify的資料流分析技術



Fortify的資料流分析技術

Fortify SCA引入了類似taint mode的概念,工具會以污染標示元(taint flag)自動標示出受污染的變數源,稱為Source,這個污染源通常是網頁的輸入或是程式參數輸入點,變數經過一連串的傳遞,到達可能會引發真正安全風險的函式呼叫,稱為Sink,也就是事件的引爆點。





來自:http://www.gss.com.tw/index.php/focus/eis/44-eis59/122-fortify

2015年6月12日 星期五

[MVC] 瘋狂發送了一堆 arterySignalR/poll 的 request



.NET MVC 會瘋狂發這種Request

How do I stop ASP.NET from sending 1000 poll requests 

GET http://localhost:56832/1c71cd8404f34693989ae85105c388c8/arterySignalR/poll?transport=longPolling&connectionToken=AQAAANCMnd8BFdERjHoAwE%2FCl%2BsBAAAAP5q4VI1aYkG73Qjc15vRQAAAAAACAAAAAAAQZgAAAAEAACAAAACYD3vHvvsQBcyldpAbdPD%2B%2FXCqmKwQPh%2FPCYkUWpNuHwAAAAAOgAAAAAIAACAAAAArGFNrtbAKafl4Zza50Znndit9CUb%2FUxL7ZkSDgLfspzAAAAC7bxQMEUafPkIyJdXrWuizotO3bxDf%2BGRZYi07dJ8pjqbSXOGxJmrQhx3GTVzP6hRAAAAADKmJ6J1amG5ZuCqfWkbGvFl3yHO9kgZdmIt6TmjYakLQepTUUzZlTsoyiUWz6VVJZ4HgMjkEpNRMpqrlO5QDcA%3D%3D&messageId=d-5AC8B2C-CA%2C0%7CCH%2C3%7CCI%2C0&requestUrl=http%3A%2F%2Flocalhost%3A58119%2FDefault.aspx&browserName=Firefox&tid=0&_=1386850842869 HTTP/1.1
Host: localhost:56832
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:25.0) Gecko/20100101 Firefox/25.0
Accept: text/plain, */*; q=0.01
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Referer: http://localhost:58119/Default.aspx
Origin: http://localhost:58119
Cookie: ASP.NET_SessionId=2hpyrlt5epkatwwkil2chwzt
Connection: keep-alive




  • In the Web.config file, add a key named “vs:EnableBrowserLink” with the value “false” in the appSettings section.
    <appSettings>
      <add key="vs:EnableBrowserLink" value="false"/>
    </appSettings>
          


form http://www.asp.net/visual-studio/overview/2013/using-browser-link#disabling



http://blog.darkthread.net/post-2014-02-11-browserlink-break-onbeforeunload-in-firefox.aspx




2015年5月15日 星期五

[C#] System.Web.HttpException: URL 編碼型式資料無效。


System.Web.HttpException: URL 編碼型式資料無效。 ---> System.InvalidOperationException: 由於該物件目前的狀態,導致作業無效。


經查證後,發現是2012年一月左右,微軟針對.NET做了資安漏洞更新,於客戶端POST回來的參數資料數有了限制;

該設定的默認值剛好為「1000」,如果是.NET 2.0以上的版本,請修改 web.config ,並在 <appSettings> 區段加上 aspnet:MaxHttpCollectionKeys 即可:
<appSettings> 
  <add key="aspnet:MaxHttpCollectionKeys" value="2500" /> 
</appSettings>


如果要在 .NET 1.1放寬限制,則須做以下設定 (需將機器重開機):

注意 如果您是在 x86 系統上使用 ASP.NET 1.1,請將 DWORD 值新增到下列登錄機碼來調整此設定:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ASP.NET\1.1.4322.0\MaxHttpCollectionKeys
如果您是在 x64 系統上使用 ASP.NET 1.1,請將 DWORD 值新增到下列登錄機碼來調整此設定:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\ASP.NET\1.1.4322.0\MaxHttpCollectionKeys


參考資料:

https://support.microsoft.com/zh-tw/kb/2661403/zh-tw

http://blog.miniasp.com/post/2012/01/01/Efficient-Denial-of-Service-Attacks-on-Web-Application-Platforms.aspx



2015年3月8日 星期日

用RAM虛擬硬碟提升VS執行效能

form:  http://blog.miniasp.com/post/2008/04/05/Useful-tools-Gavotte-Ramdisk.aspx



到 C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config 的 <system.web>
新增 <compilation tempDirectory="Q:\Temporary ASP.NET Files\" />

這樣不管是 IIS 或在 Visual Studio 都一樣



2015年3月6日 星期五

開啟Windows內建的隱藏版磁碟清理程式

轉自: http://steachs.com/archives/1493



要開啟隱藏版的磁碟清理程式,先在開始功能表輸入『cleanmgr /sageset:99』。
clean-02

然後會出現磁碟清理設定,不過不同的是多了非常多選項,將欲清理的部份都勾選之後按下確定,全部的項目如下:
1. Temporary Steup Files
2. Downloaded Program Files
3. Temporary Internet Files
4. 離線網頁
5. Debug Dump Files
6. 之前的 Windows 安裝
7. 資源回收桶
8. 系統錯誤記憶體傾印檔案
9. 系統錯誤小型傾印檔案
10. 暫存檔案
11. 遊戲統計資料檔案
12. 暫存的 Windows 安裝檔案
13. 縮圖
14. 由每個 Windows 升級所捨棄的檔案
15. 每個使用者保存的 Windows 錯誤報告檔案
16. 每個使用者排入佇列的 Windows 錯誤報告檔案
17. 系統保存的 Windows 錯誤報告檔案
18. 每個排入佇列的 Windows 錯誤報告檔案
19. Windows Upgrade Log Files
clean-03

設定完要清理的項目後再輸入『cleanmgr /sagerun:99』執行清理,就會開始清理所勾選的項目,之後如果要重新設定清理項目,一樣回到上一個指令再設定即可。

Chrome 的 User Data資料夾 越來越肥?

轉自 : http://home.gamer.com.tw/creationDetail.php?sn=2195888


C:\Documents and Settings\Administrator\Local Settings\Application Data\Google\Chrome\User Data\Default\File System\002\p\00

這個資料夾,有點肥XD

PS:我的OS還是XP(我是XP愛好者XD)、瀏灠器:Google Chrome

裡面放了一堆數字名稱檔,如下圖(事後補拍只有1個檔)


上網google查資料,才知道
這是Google Chrome在Mega下載資料時,所產生的暫存檔
簡單來說就是
如果你從Mega下載了1G的資料,那麼實際在你的電腦裡就會佔了2G的空間
以此類推,下載有10G、就會佔20G‧‧‧被吃掉的空間,狠可怕
這個暫存檔並不會因為下載完資料就會自動刪除
如果一直沒理,似乎要很久或根本不會消失
所以我發現後就自己手動刪除了

刪除時要注意的就是每個人的路徑位置可能略有不同
C:\Documents and Settings\Administrator\Local Settings\Application Data\Google\Chrome\User Data\Default\File System\002\p\00

紅色字體部份,我的路徑是002,也有可能是000、001之類

因為每個人的路徑不一定都會完全一樣
所以也可以自己從C槽根目錄一層一層點開來追
不過這個做法就需要先打開任一資料夾:
工具→資料夾選項→檢示→顯示所有檔案和資料夾(點選)
才有辦法一層一層點開來追,因為有些資料夾是隱藏的

至於Win7+Google Chrome,我google查到的路徑是:
C:\Users\XXXX(你電腦名稱)\AppData\Local\Google\Chrome\User Data\Default\
File System\000\t\00

前面紅字要自己修改
000應該也有可能不一樣(?

2015年2月9日 星期一

[C#] IEnumerable 和 List

from: http://www.dotblogs.com.tw/city7/archive/2013/11/29/131970.aspx


因為 array 與 List<T> 都有實作 IEnumerable 介面,
將方法的引數宣告為 IEnumerable 便可通吃 array 與 List<T>,
如下:

int[] a = { 1, 2, 3 };
List<int> b = new List<int> { 4, 5, 6 };

ListAllElement(a);//可帶array
ListAllElement(b);//可帶List

---------------------------

private void ListAllElement(IEnumerable<int> elements)
{
    foreach (int element in elements)
    {
        Console.WriteLine(element);
    }
}


當然啦, 不只 List<T>, 只要是有實作 IEnumerable 介面的型別都適用。



其實我對於IEnumerable 的用途感受並不怎麼深,還是用比較明確的list吧 !


 

MangoHost Copyright © 2009 Cookiez is Designed by Ipietoon for Free Blogger Template