Adobe Air & Adobe Flex & ActionScript & Mobile Dev & HTML5 & RIA & User Experience
現在使用html標簽越來越頻繁,但是對Database的負擔也會隨之增加。
那么我們能不能自定義rules呢?
下面舉個簡單的例子
比如一個
link(<a target=”_blank” href=”http://www.yahoo.com.tw”><u>奇摩</u></a>)
我們將會把它變成
[http://www.yahoo.com.tw||奇摩]
然后再在Database進行存儲。相比而言,63個字符轉化29個字符,2:1的比例。考慮到其他的html標簽,我們至少能省掉數據庫一半的空間比例。
有些人說,這樣的做法不是加重了服務器的處理么?不不不,現在RIA普遍程度越來越大,很多以前放在后端的處理,都會直接放在前端進行處理。畢竟Server端只有一個,而Client端可以無窮。因此,我們只是在Client端做文章。
下面貼出Client端做rule_html到standard_html的顯示Code:
private static var headStr:String = "["; private static var footStr:String = "]"; private static var centerStr:String = "||"; /** * Replace Html Link * @param Link Format * @return htmlStr * @author Alvin */ public static function replaceHtmlLink(htmlStr:String):String{ if(htmlStr == null || htmlStr == "") { return ""; } var tmpIndex:Number = htmlStr.indexOf(headStr); var headFlag:Boolean = tmpIndex != -1 ? true : false; if(headFlag) { var headIndex:Number = tmpIndex; tmpIndex = htmlStr.indexOf(footStr, headIndex); var footFlag:Boolean = tmpIndex != -1 ? true : false; if(footFlag) { var footIndex:Number = tmpIndex; tmpIndex = htmlStr.substring(headIndex, footIndex).indexOf(centerStr); var centerFlag:Boolean = tmpIndex != -1 ? true : false; if(centerFlag) { var centerIndex:Number = tmpIndex + headIndex; var frontStr:String = htmlStr.substring(0, headIndex); var linkStr:String = htmlStr.substring(headIndex + headStr.length, centerIndex); var textStr:String = htmlStr.substring(centerIndex + centerStr.length, footIndex); var backStr:String = htmlStr.substring(footIndex + footStr.length, htmlStr.length); if(backStr.indexOf(headStr)!= -1) { backStr = replaceHtmlLink(backStr); } var lastStr:String = frontStr + "<span style="color: #00ddd0;"><a href="\" target="\"_blank\""><span style="text-decoration: underline;">" + textStr +"</span></a></span>" + backStr; return lastStr; } } } return htmlStr; }
Related posts:
Leave a reply
Pingbacks & Trackbacks
Flex 4.5 Spark RichEditableText maxChars 與輸入法問題 : : 9RIA.Com 天地会博客聚合
八月 7th, 2011 at 7:03 下午