开发杂记-潦草整理

by kevin 2. 九月 2014 23:15 >
css的float会将display为inline或者block的元素,修改成display:inline-block razor.parse 每次都会重新编译模板文件,这样做很耗资源(内存和CPU) Html.RenderPartial其实也是比较耗资源的 javascript,多个空格合并成一个: 1: string = string.replace(/\s{2,}/g, ' '); asp.net mvc,使用 razor模板引擎,让方法返回的字符串不会被进行Html编码: 1: public static IHtmlString BeginScript(this HtmlHelper htmlHelper) 2: { 3: return new HtmlString("<script type=\"text/javascript\">"); 4: } 5:  6: public static IHtmlString EndScript(this HtmlHelper htmlHelper) 7: { 8: return new HtmlString("</script>"); 9: } 导出Excel中出现乱码的终极解决方案: 1: <meta http-equiv="content-type" content="application/ms-excel; charset=UTF-8"/> 2: <table> 3: <tr> 4: <td>cbcye@live.com | http://www.cbcye.com </td> … 5: </tr> 6: <table>

开发杂记-无心整理

by kevin 15. 六月 2014 17:32 >
最近是累了点,懒了点。 一个div元素,点击,页面外的元素,隐藏此div。 1: $(document).mouseup(function (e) 2: { 3: var container = $("YOUR CONTAINER SELECTOR"); 4:  5: if (!container.is(e.target) // if the target of the click isn't the container... 6: && container.has(e.target).length === 0) // ... nor a descendant of the container 7: { 8: container.hide(); 9: } 10: }); jquery.bxslider 是一个很不错的插件。 目前的版本是4+,使用过程中,碰到了几个bug. 如果刚好slider正在切换[gotoprev,gotonext]的时候,进行重绘[redraw],会造成slider停止工作。修复代码如下: 修改前: 1: el.redrawSlider = function () { 2: // resize all children in ratio to new screen size 3: slider.children.add(el.find('.bx-clone')).width(getSlideWidth()); 4: // adjust the height 5: slider.viewport.css('height', getViewportHeight()); 6: // update the slide position 7: if (!slider.settings.ticker) setSlidePosition(); 8: // if active.last was true before the screen resize, we want 9: // to keep it last no matter what screen size we end on 10: if (slider.active.last) slider.active.index = getPagerQty() - 1; 11: // if the active index (page) no longer exists due to the resize, simply set the index as last 12: if (slider.active.index >= getPagerQty()) slider.active.last = true; 13: // if a pager is being displayed and a custom pager is not being used, update it 14: if (slider.settings.pager && !slider.settings.pagerCustom) { 15: populatePager(); 16: updatePagerActive(slider.active.index); 17: } 18: } 修改后: 1: el.redrawSlider = function () { 2: if (slider.working) { 3: // Wait 'speed' amount of time before redrawing 4: setTimeout(function () { el.doRedrawSlider(); }, slider.settings.speed); 5: } else { 6: // Redraw immediately 7: el.doRedrawSlider(); 8: } 9: }; 10:  11: el.doRedrawSlider = function() { 12: // resize all children in ratio to new screen size 13: slider.children.add(el.find('.bx-clone')).width(getSlideWidth()); 14: // adjust the height 15: slider.viewport.css('height', getViewportHeight()); 16: // update the slide position 17: if (!slider.settings.ticker) setSlidePosition(); 18: // if active.last was true before the screen resize, we want 19: // to keep it last no matter what screen size we end on 20: if (slider.active.last) slider.active.index = getPagerQty() - 1; 21: // if the active index (page) no longer exists due to the resize, simply set the index as last 22: if (slider.active.index >= getPagerQty()) slider.active.last = true; 23: // if a pager is being displayed and a custom pager is not being used, update it 24: if (slider.settings.pager && !slider.settings.pagerCustom) { 25: populatePager(); 26: updatePagerActive(slider.active.index); 27: } 28: };   slider元素中,如果有img或者iframe无法正常加载,会引发slider无法正常工作。 修复前: 1: var loadElements = function (selector, callback) { 2: var total = selector.find('img, iframe').length; 3: if (total == 0) { 4: callback(); 5: return; 6: } 7: var count = 0; 8: selector.find('img, iframe').each(function () { 9: $(this).one('load', function () { 10: if (++count == total) callback(); 11: }).each(function () { 12: if (this.complete) $(this).load(); 13: }); 14: }); 15: } 修复后: 1: var loadElements = function (selector, callback) { 2: var total = selector.find('img, iframe').length; 3: if (total == 0) { 4: callback(); 5: return; 6: } 7: var count = 0; 8: selector.find('img, iframe').each(function () { 9: $(this).one('load', function () { 10: if (++count == total) callback(); 11: }).one('error', function() { 12: if (++count == total) callback(); 13: }).each(function () { 14: if (this.complete) $(this).load(); 15: }); 16: }); 17: }

开发杂记-未整理

by kevin 17. 三月 2014 22:27 >
window.location.replace window.location.replace('url'),简单的防止后退到前一个页面。 fluentData的ParameterOut fluentData的ParameterOut方法有bug 如果output decimal的话,小数点的位置会被设置为0,所以改用 Currency ParameterOut("SubTotal", DataTypes.Currency)

开发杂记-MSSQL Studio 技巧

by kevin 11. 三月 2014 14:52 >
关闭查询编辑器(SQL Query Editor)的查询结果窗口 快捷键是Ctrl+R 如果失效了,可以通过 Tools –> Options –> Environment –> Keyboard进行设置,如下图

实用的Dos命令

by kevin 23. 二月 2014 15:38 >
查看DNS缓存 ipconfig /displaydns 清除DNS缓存 ipconfig /flushdns

开发杂记:如何处理google chrome最小字号的问题

by kevin 16. 十二月 2013 14:15 >
最近在改版65emall的时候,碰到一个很棘手的问题,Chrome浏览器有个最小字号设置,就是当字号小于最小字号时,就会自动调整为自动调整为最小的字号。如下图: 在中文版的Chrome中,默认的最小字号是12; 在英文版的Chrome中,默认的最小字号是10。 1: -webkit-text-size-adjust:none; 网上很多都建议使用上面这样的语法来实现,但在高版本的Chrome中,这个语法已经无效了。 所以使用 -webkit-transform: 代码如下: 1: .font-size8 { font-size: 8px;} 2: .font-size9 {font-size: 9px;} 3: .font-size10 {font-size: 10px;} 4: @media screen and (-webkit-min-device-pixel-ratio:0) { 5: .font-size8 { 6: font-size: 12px; 7: margin-top: 1px; 8: -webkit-transform: scale(0.83); 9: } 10: .font-size9 { 11: font-size: 12px; 12: margin-top: 2px; 13: -webkit-transform: scale(0.86); 14: } 15: .font-size10 { 16: font-size: 12px; 17: margin-top: 2px; 18: -webkit-transform: scale(0.92); 19: } 20: } 注意一下 为了能同时兼容中英文Chrome,10号,11号也要这样缩小 这个比例不是简单的等比例缩小,比如9号字,的缩放比例就不是0.75 另外需要注意的一点是,长度,高度,还是会按照10或者12号字来计算,所以,最好在外层在加个div作为容器。 1: <div> 2: <div class="font-size9">font-size:9px</div> 3: </div>

开发杂记:让小于12号的字在google chrome中显示

by kevin 8. 十一月 2013 13:40 >
做为一个非专业的Css编写人员,一不小心,就可以踩到坑。 觉得小于12号的字不利于阅读,所以google chrome小于12号的字,都会被修正为12号。 google了下,据说,随着浏览器版本的升级,处理的方案还不一样。 整体的代码如下: 1: * { 2: -webkit-text-size-adjust: none; 3: -webkit-transform-origin-x: 0; 4: -webkit-transform: scale(0.8333333333333334); /* 10/12=0.8333333333333334) */ 5: }

开发杂记:z-index的那些坑

by kevin 22. 十月 2013 13:58 >
要实现my cart那样的边框效果,很自然的想到 上面一个div, 下面一个div, 上面那个div的z-index比下面的这个大, 下面这个div往上移1px。 然后,悲剧就开始了。。。 总结了一下,基本上是以下几个坑: z-index 仅能在定位元素上奏效,就是要求该元素设置 position:xxxx,否则z-index无效。 如果元素内嵌于li,那么li需要设置 position:relative 上面的div需要设置background,否则无法遮住下面的div 主要代码如下: 1: <li style="position:relative" id="cart" > 2: <div style="width: 100px; height:23px; position: relative; z-index: 2; background-color: white; border: 1px solid #d3d3d3;"></div> 3: <div style="position: absolute; width: 100px; z-index: 1; top: 22px; background-color: white; border: 1px solid #d3d3d3; "> 4: </div> 5: </li>

开发杂记:RequestValidationMode

by kevin 30. 八月 2013 13:56 >
碰到一个管理后台项目,使用的是Asp.net 2.0时候的WebForm,但项目已经升级到Asp.net 4.0了。 今天碰到一个小意外,测试那边报了一个HttpRequestValidationException,在.net 2.0时代,将页面的ValidateRequest设置为false,或者在Web.Config里面设置<pages validateRequest="false" />,升级到.net 4.0后,验证模式也已经升级了。所以如果采用默认的设置,就会报HttpRequestValidationException,解决的办法是,将RequestValidationMode设置为2.0,代码如下: 1: <system.web> 2: <compilation debug="true" targetFramework="4.0"/> 3: <httpRuntime requestValidationMode="2.0" /> 4: <pages validateRequest="false"></pages> 5: </system.web> 关于RequestValidationMode,有两个值,默认是4.0 4.0 (the default). The HttpRequest object internally sets a flag that indicates that request validation should be triggered whenever any HTTP request data is accessed. This guarantees that the request validation is triggered before data such as cookies and URLs are accessed during the request. The request validation settings of the pages element (if any) in the configuration file or of the @ Page directive in an individual page are ignored. 2.0. Request validation is enabled only for pages, not for all HTTP requests. In addition, the request validation settings of the pages element (if any) in the configuration file or of the @ Page directive in an individual page are used to determine which page requests to validate.

C#小技巧-持续更新

by kevin 29. 八月 2013 22:19 >
字符串转换为日期 1: DateTime.ParseExact(MYCulturDate, "dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture); 获取某个文件夹下的所有文件 1: Directory.GetFiles("Path", "*.*", SearchOption.AllDirectories)