01
Digg
Stumbleupon
Technorati
Delicious

PC端UmdEditor更新到V2.6,新增字体颜色设置,加强查找替换等编辑功能

下面介绍下主要更新的一些功能。 1. 新增为编辑区设置字体和颜色的功能。设置后,下次打开依然有效。   2. 新增“查找和替换”功能,该功能允许查找和替换当前编辑章节的内容和替换所有章节内容。   3. 新增“批量编辑章节名”的功能,让你一次修改所有章节名后保存,不用一个一个章节点右键修改章节名。   4. 新增“查找和定位章节”的功能。 5. 给一些菜单的功能加了快捷键,可以参考菜单名的右侧说明。   6. 优化软件的启动速度,修复了一些bug。   新版UMDEditor V2.6.2下载:UmdEditor-V2.6.2.zip 下载次数:3038   Update: 2.6.1 (2011-10-1) 修正UI的一些问题 2.6.2 (2011-11-7) 删除章节时,允许多选删除 左侧章节名区域和右侧章节内容编辑区的宽度允许调节 修复删除任意一章,直接点保存,清空下一章内容的bug “编辑封面和基本信息”里面的“封面”按比例缩放显示 修复只是设置字体之后,误判定为umd文件已经修改过的bug

Author: jianyun
28
Digg
Stumbleupon
Technorati
Delicious

C#三种字符串拼接方法性能浅析

字符串拼接的方法主要包括以下三个:+,String.Format(),StringBuilder.Append()。 1)对于少量固定的字符串拼接,如string s= “a” + “b” + “c”,系统会优化成s= String.Concat(“a”,”b”,”c”),不会新建多个字符串。 如果写成string s=”a”; s +=”b”; s+=”c”;则会创建三个新的字符串。 2)String.Format的源代码:    public static String Format(              IFormatProvider provider, String format, params Object[] args) {             if (format == null || args == null)                throw new ArgumentNullException((format==null)?”format”:”args”);             StringBuilder sb = new StringBuilder(format.Length + args.Length * 8);             sb.AppendFormat(provider,format,args);             return sb.ToString();    } 可见,它和StringBuilder有着相似的效率,比用“+”的拼接方式高效,并且代码易于阅读。 string s= String.Format(“{0}{1}{2}”,”a”,”b”,”c”); 3)StringBuilder可以指定内存空间的容量,但可能需要进行数据类型转化。字符串较少时,可以使用String.Format()代替。 4)少量的字符串操作时,可以使用“+”或者String.Format();大量的字符串操作时,比如在循环体内,必须使用StringBuilder.Append()。  

Author: jianyun
19
Digg
Stumbleupon
Technorati
Delicious

html meta标签作用及使用说明

meta是用来在HTML文档中模拟HTTP协议的响应头报文。meta 标签用于网页的<head>与</head>中,meta 标签的用处很多。meta 的属性有两种:name和http-equiv。 name属性主要用于描述网页,对应于content(网页内容),以便于搜索引擎机器人查找、分类(目 前几乎所有的搜索引擎都使用网上机器人自动查找meta值来给网页分类)。这其中最重要的是description(站点在搜索引擎上的描述)和 keywords(分类关键词),所以应该给每页加一个meta值。比较常用的有以下几个: name 属性 1、<meta name=”generator” contect=””>用以说明生成工具(如Microsoft FrontPage 4.0)等; 2、<meta name=”keywords” contect=””>向搜索引擎说明你的网页的关键词; 3、<meta name=”description” contect=””>告诉搜索引擎你的站点的主要内容; 4、<meta name=”author” contect=”你的姓名”>告诉搜索引擎你的站点的制作的作者; 5、<meta name=”robots” contect= “all|none|index|noindex|follow|nofollow”> 其中的属性说明如下: 设定为all:文件将被检索,且页面上的链接可以被查询; 设定为none:文件将不被检索,且页面上的链接不可以被查询; 设定为index:文件将被检索; 设定为follow:页面上的链接可以被查询; 设定为noindex:文件将不被检索,但页面上的链接可以被查询; 设定为nofollow:文件将不被检索,页面上的链接可以被查询。 http-equiv属性 1、<meta http-equiv=”Content-Type” contect=”text/html”;charset=gb_2312-80″> 和 <meta http-equiv=”Content-Language” contect=”zh-CN”>用以说明主页制作所使用的文字以及语言; 又如英文是ISO-8859-1字符集,还有BIG5、utf-8、shift-Jis、Euc、Koi8-2等字符集; 2、<meta http-equiv=”Refresh” contect=”n;url=http://yourlink ”>定时让网页在指定的时间n内,跳转到页面http://yourlink ; 3、<meta http-equiv=”Expires” contect=”Mon,12 May 2001 00:20:00 GMT”>可以用于设定网页的到期时间,一旦过期则必须到服务器上重新调用。需要注意的是必须使用GMT时间格式; 4、<meta http-equiv=”Pragma” [...]

Author: jianyun
17
Digg
Stumbleupon
Technorati
Delicious

解决jQuery $(document).ready 和 UpdatePanel的冲突问题

一些放在$(document).ready 中的事件,如change等,添加到UpdatePanel中的某个控件上,当第一次page load的时候,事件会工作正常,但是当页面部分刷新的时候,这个控件上绑定的事件就会没有了。   下面我们简单的分析两者的框架结构来解决这个兼容性问题。   分析1:UpdatePanel  UpdatePanel在应用中主要用于局部刷新,避免整个页面的Postback。 UpdatePanel实现局部刷新的核心在于MicrosoftAjaxWebForm.js文件,它的局部刷新过程就是将页面提交到服务端(包含ViewState),执行服务端代码后异步将在UpdatePanel内的HTML进行重新呈现。 在此过程中,页面的其它部分并没有状态更改。   分析2:jQuery jQuery可以通过简单的代码对HTML元素添加各种属性和事件句柄,我们可以在这里看到官方的文档: Tutorials:How jQuery Works http://docs.jquery.com/How_jQuery_Works 在这里,我们可以得知,jQuery有个重要的事件标记“ready”,一般对HTML元素的效果和事件句柄都通过这个ready事件来添加,如下: $(document).ready(function () {    $(“p”).text(“The DOM is now loaded and can be manipulated.”); }); 官方对此的说明是:ready事件会在DOM完全加载后运行一次,OK,至此,问题的原因差不多明白了。   原因:  因为在UpdatePanel局部刷新之后,其中的元素A被重写,而此时整个DOM树并没有重新加载,所以jQuery的ready事件并没有触发,所以元素A就失去了原有的特效。   解决方案: 我们可以将ready事件中执行的代码提取出来,然后通过捕获ScriptManager的EndRequest事件,在每次UpdatePanel局部刷新之后执行一次jQuery初始化代码,当然原来的$(document).ready 仍然需要使用。如下所示: var prm = Sys.WebForms.PageRequestManager.getInstance(); prm.add_endRequest(function() { // re-bind your jquery events here }); 如果你的代码是写在.js文件中的,你需要使用ScriptManage的Script属性: <asp:ScriptManager ID=”ScriptManager1″ runat=”server” > <Scripts> [...]

Author: jianyun