JavaScript 字符串 半角转全角
作者:V君 发布于:2017-4-13 1:24 Thursday 分类:折腾手记
var arrProcessed = [];
var code;
for (var i = 0; i < t.length; i++) {
code = t.charCodeAt(i);
if (code > 32 && code < 127) code += 0xFEE0;
arrProcessed.push(code);
}
t = String.fromCharCode.apply(window, arrProcessed);
参考资料:爆栈,Unicode Map,爆栈,爆栈。
用来给竖排排版被打横的字符摆正,主要精髓是原生脚本。
扯扯:
比起被转载的满天飞的版本,还是自己重新码过,整洁度和性能都不在一个级别上。
真能忍受每次都调用 charCodeAt ,定义一个局部变量会死吗?
还有看到每次循环都作字符串拼接也犯了强迫症,丢进数组然后再调用原生功能一次转换。
标签: 软件开发 javascript Web技术
巧用「嵌入资源」和「动态加载程序集」解决依赖库版本冲突
作者:V君 发布于:2017-4-1 14:39 Saturday 分类:填坑经验
太短(?)就不写摘要了 (´∀((☆ミつ
一个老项目,使用了 .net 3.5,框架体系中已经引用了较早期的 Newtonsoft JSON 库。
它的版本也是3.5,现在这个库已的版本已经到10.0了。
和旧版比起来有一些命名差异以及修复了一些 bug,需要的功能正好在被修复的 bug 里。
我们都知道如果一个项目里不同的程序集之间引用不同版本,但名称相同的程序集会出现冲突。
尽管可以重定向程序集版本,但是那时还没啃透,
不知道除了能代替版本还能指定另一个文件,这种方式也是可以解决问题的(MSDN)。这是后话。
回到我们这次的做法。
新版本的 DLL 没跑进 bin,试着手动复制进去(当然已经改过文件名再引用),发现启动不了。
这是当然的,WEB 项目会无脑的把bin里的程序集全部都加载起来,发现同程序集名不同版本就挂了。
于是就用了 Aio1ef 那招
-- 引用时去掉本地复制,在首次使用前于静态构造加挂程序集解析事件,载入嵌入程序集。
于是就让两个不同版本的 Newtonsoft JSON 共存了,
当然目前只是在这个项目里的不同程序集分别引用。
要在同一个程序集里引用两个名称相同,版本却不同的程序集,
在没有用到 Attribute 的前提还是可以勉强反射一下实现,写个类 Proxy 也是挺有意思的。
如果有用到 Attribute 那就洗洗睡吧, 那估计要用 IL 显式指定程序集名称了 乂目。
blogger
Google Web Translator
热门日志
随机日志
最新日志
最新评论
- V君
@Quartz:(出现)... - Quartz
怎么不见人了呢... - V君
@Soar:DHCP 协议相... - V君
@Soar:当然是非... - Soar
@V君:谢谢 有空... - Soar
搞一个 1230v3+B85... - V君
@Soar:另外,也可... - V君
@Soar:iscsi服务端... - Soar
难怪这么卡,尤其... - Soar
clone了源码,提示...
分类
存档
- 2024年5月(1)
- 2023年7月(1)
- 2023年5月(1)
- 2022年11月(1)
- 2022年10月(1)
- 2022年9月(1)
- 2022年8月(1)
- 2022年7月(1)
- 2022年6月(1)
- 2022年5月(2)
- 2022年4月(1)
- 2022年3月(1)
- 2022年2月(1)
- 2022年1月(1)
- 2021年12月(1)
- 2021年11月(1)
- 2021年10月(1)
- 2021年9月(1)
- 2021年8月(1)
- 2021年7月(1)
- 2021年6月(1)
- 2021年5月(1)
- 2021年4月(1)
- 2021年3月(1)
- 2021年2月(1)
- 2021年1月(1)
- 2020年12月(1)
- 2020年11月(1)
- 2020年10月(2)
- 2020年9月(1)
- 2020年8月(1)
- 2020年7月(1)
- 2020年6月(1)
- 2020年5月(1)
- 2020年4月(2)
- 2020年3月(3)
- 2020年2月(1)
- 2020年1月(1)
- 2019年12月(1)
- 2019年11月(1)
- 2019年10月(1)
- 2019年9月(1)
- 2019年8月(2)
- 2019年7月(1)
- 2019年6月(1)
- 2019年5月(1)
- 2019年4月(1)
- 2019年3月(1)
- 2019年2月(1)
- 2019年1月(2)
- 2018年12月(2)
- 2018年11月(1)
- 2018年10月(3)
- 2018年9月(4)
- 2018年8月(6)
- 2018年7月(4)
- 2018年6月(1)
- 2018年5月(2)
- 2018年4月(2)
- 2018年3月(3)
- 2018年2月(1)
- 2018年1月(1)
- 2017年12月(1)
- 2017年10月(2)
- 2017年9月(1)
- 2017年8月(2)
- 2017年7月(1)
- 2017年6月(5)
- 2017年5月(2)
- 2017年4月(2)
- 2017年3月(3)
- 2017年2月(2)
- 2017年1月(2)
- 2016年12月(3)
- 2016年11月(2)
- 2016年10月(3)
- 2016年9月(4)
- 2016年8月(2)
- 2016年7月(4)
- 2016年6月(3)
- 2016年5月(1)
- 2016年4月(4)
- 2016年3月(3)
- 2016年2月(1)
- 2016年1月(5)
- 2015年12月(4)
- 2015年11月(5)
- 2015年10月(1)
- 2015年9月(6)
- 2015年8月(4)
- 2015年7月(1)
- 2015年6月(6)
- 2015年5月(3)
- 2015年4月(3)
- 2015年3月(2)
- 2015年2月(1)
- 2015年1月(3)
- 2014年12月(1)
- 2014年11月(1)
- 2014年10月(1)
- 2014年9月(3)
- 2014年8月(1)
- 2014年7月(1)
- 2014年6月(1)
- 2014年5月(3)
- 2014年4月(1)
- 2014年3月(1)
- 2014年2月(2)
- 2014年1月(1)
- 2013年12月(2)
- 2013年11月(2)
- 2013年10月(1)
- 2013年9月(3)
- 2013年8月(14)
- 2013年7月(7)
- 2013年4月(1)
- 2013年3月(4)
- 2013年2月(6)
- 2013年1月(6)
- 2012年12月(8)
- 2012年11月(6)