需解决的问题:
Enter发送,Ctrl+Enter换行
中文输入回车问题
消息格式的显示(换行、预格式富文本)
消息发送后的显示滚屏
针对以上问题,逐一解决如下:
一、发送和换行问题
textarea中默认Enter和Shift+Enter换行,若需要改成Enter发送,需要监听键盘事件修改Enter默认行为。其中,手动插...[阅读全文] Angular应用默认采用HashHistory方式进行路由,若要支持“伪多页”的BrowserHistory方式,需要结合Nginx的配置。
过程如下:
1、在路由设置中,修改路由配置
RouterModule.forRoot(routes, {
useHash: false
})
2、配置Nginx
server {
listen 80;
server_name www.app....[阅读全文] 在执行npm ls -g时发现输出遗漏了几个已安装的包,如下图:
列表中缺少了webpack、eslint、typescript三个。但在执行npm outdated -g和npm up -g时,却能正常覆盖所有已安装的包。好奇之下,搜索了相关问题,无解。却无意中发现一个参数,即如:npm ls -g eslint,却是能列出相关信息的:
同时,执...[阅读全文] 借着换工作的机会,重新审视了未来的方向问题,以及现实的差别所在。2B和2C类产品都曾完整参与过,在经历过最近一次的残酷“历炼”之后,尤其感触深刻。结合对前端领域的思考和反省,有种难以言状的“骨感”和失落。业务导向是大多数2B类产品的特征,无论包装成SaaS、PaaS...[阅读全文] 前端开发当中鲜有涉及到位运算,因此,对其的应用也基本停留在语法层面。但最近遇到的一个需求,却令自己对位运算刮目相看。
产品要求在进行输入验证时,当且仅当全部有值或者全部为空时合法。此时,若用传统的if进行判断,将会有不少的分支,对于代码的测试和维护均是一个挑战。对于此情景,不禁联想...[阅读全文] 博客开放评论后,常会有一些垃圾评论充斥后台。对于此类“机器人留言”,要在夹杂着正常评论的数千条数据当中进行整理、删除,着实是不小的工作量。解决之道有以下几种:一是设置后台审核功能,或关闭匿名评论,审核通过后才予以公开;二则设置关键词,含有敏感词的评论一律屏蔽;三是设置黑...[阅读全文] 1、类型判断、转换
if (visibleFlag) {
visible = 1;
} else {
visible = 0;
}
改为(如:在数据库保存时无法自动转换数据类型):
visible = visibleFlag + 0
2、独立函数调用
postTitle = postTitle ? postTitle.trim() : '';
改为:
postTitle = util.trim(xss.sanitize(postTitle))...[阅读全文] 配置 PHP 过程中看到 Nginx 的日志文件大小达到 800 多 Mb,里面的日志内容多是:nginx: [emerg] bind() to 0.0.0.0:80 failed (48: Address already in use)等端口占用信息,不免好奇。Mac 默认的 Apache 已经 stop,再无其他应用、程序占用 80 端口。事实上,netstat分析也显示没有其他进程...[阅读全文] log4js 升级到 2.x 版本后,原先的 dateFile 不再支持按 category 输出单独文件,需转为 multiFile 形式。但,multiFile 并不支持配置为按 date 输出单独文件。因此,需进行特殊处理。修改配置如下:appenders: { system: { type: 'multiFile', base: 'logs/', extension:...[阅读全文] Strict Mode和ESLint规范都禁止使用arguments.callee,原因参见:Strict mode、arguments.callee。但在设计日志系统和日志格式时,却需要记录日志信息所在函数或方法。简单粗暴的方式便是直接hard coding,将函数、方法名copy到日志数据中,如此产生的问题便是一旦函数、方法名变更,便需要同步...[阅读全文]