随笔分类 - 问题解决记录
记录日常开发中遇到的一些问题
摘要:人在江湖飘,哪能不挨刀。 我挨了重重一bug。严格来讲这可能是我职业生涯以来的首个悲惨经历,因为凭我的知识储备和经验,基本上任何可重现的bug都是可解的。然而这个bug却困扰了我三个月之久,它具有以下生理特征: 1. 后台日志能统计到异常,偶发、低频 2. 报异常的用户设备不具有规律性,什么手机都有
阅读全文
摘要:俗话说不作死就不会死,今天作死了一回,写了一个比较二逼的函数,遇到了同步Ajax引起的UI线程阻塞问题,在此记录一下。 事情起因是这样的,因为页面上有多个相似的异步请求动作,本着提高代码可重用性的原则,我封装了一个名为getData的函数,它接收不同参数,只负责获取数据,然后把数据return...
阅读全文
摘要:乍一看这标题,有点吊炸天的赶脚,canvas跟能有什么联系?不过请放心我不是标题党。事情是这样的: HTML5的标签所支持的视频格式确实有限,mp4文件必须是H264编码的才行,若不是H264编码,在chrome下会只有声音没有画面,在FireFox下直接连声音也没有,而且控制台会显示警告: 因为浏览器使用的解码器也是H264的。如果用户在本地可以观看的mp4视频上传后却无法正常播放,这种体验是相当糟糕的。 我尝试在文件上传阶段进行检测,然而HTML5的FILE API能力也是有限的,只能获取文件名称、大小、MIME类型,对于视频的编码却无法检测到。 既然无法从上传阶段阻止用户,那...
阅读全文
摘要:随着HTML5被越来越多的用到web APP的开发当中,webview这一个神器便日渐凸显出重要地位。简要的说,webview能够在移动应用中开辟出一个窗口,在里面显示html页面,css以及js代码也可以被解析执行,它使用的是我们熟悉的webkit内核。android和ios都有相应的API,所以写一份代码在多个平台运行的能力就是以webview为基础的。 今天我们要聊的不是如何使用webview,而是笔者本人作为一名前端工程师,在与客户端开发人员通过webview打交道中遇到的种种神奇事件。 事情还得从去年说起,我还是一个小白实习生的时候。当经理知道有webview这个神器之后,遂...
阅读全文
摘要:jQuery的ajax模块封装了非常强大的功能,有时候我们在发送一个ajax请求的时候希望能有一个超时的时间,想让程序在一段时间请求不到数据时做出一些反馈。幸运的是jQuery为我们提供了这样的参数:timeout。今天试了一下,做个记录。 首先在试验之前,有一个一直搞不明白的东西,那就是默认的超时时间是多少?这个配置在到底在什么地方设置。jQuery中?还是apache中?PHP中? 经过一番搜索,暂得到如下结论: ①jQuery没有默认的超时时间,只可以通过参数来配置; ②apache2的默认超时时间是300秒,但是我在httpd.conf中设置Timeout 10,压根没起到...
阅读全文
摘要:要在旧系统中加一个jquery插件,本地demo测试没问题,部署到服务器后却报错。使用的是IE9浏览器,打开F12调试台,发现默认的文档模式是IE7,调成IE9后,报错消失。可以确认是该插件不兼容IE7造成的。 有一个重大的疑惑,明明是IE9浏览器,打开后怎么会默认是IE7模式呢? 很快,在我翻看旧系统的代码时,这个疑惑稍稍有点眉目,看到了这样的一句:,原来此标签正是设置文档用IE7来解析,究其原因,是一个历史问题。在IE8刚刚发布还未稳定之时,有些网页都不能正常显示,于是眉毛胡子一把抓,强制令其使用IE7来解析,已到达在IE8下正常显示的目的,详细请参考这里。 为什么说稍稍有点眉目...
阅读全文
摘要:处理代码的兼容性是前端攻城师们的家常便饭了,一般是对各种浏览器进行兼容性处理。但是有时候我们也会遭遇到浏览器以外的影响因素,这个是经常会被忽视掉的内容。比如前几天就听说客户端安装迅雷、暴风影音等软件会修改http连接数,从而影响浏览器的http并发数。今天有幸,让我见识了另一个因客户端安装个别软件而造成的程序兼容问题。罪魁祸首便是金山WPS2013. 故事的开始是这样的。。。我用HTML5写了一个文件上传插件,其中使用到了file API,在验证文件类型的时候使用了file.type获取的文件MIME类型,如果获取的值在允许列表中,就让其通过验证。插件写完了,应用到了项目中,提交测试了,...
阅读全文
摘要:一、前言好久木有写点东西了,最近一直忙着开发,本来想晚上干完活后还想再做点什么有意义的事,直接累趴下了,今天趁着有时间赶快把这个解决问题的过程记录下来,备以后参考,也给其他遇到同样问题的朋友一个思路。ok,开始吧!二、从ipad对iframe的偏见开始说起尽管越来越多的人不推荐使用iframe,但有些时候我们还是无法避免要使用到iframe,例如使用了kindediter(其生成的编辑框中为一个iframe)。当你的页面使用了iframe并且需要支持ipad访问时,就不得不做一些工作了。首先,是为iframe设置高度会不起作用。无论是使用height属性,还是在css中指定高度,都无效。解决此
阅读全文
摘要:可能大多数人用过,jquery ui组件中,有个叫datepicker的,用来接收用户输入的日期,截图如下: 这个控件的缺点是不能选择时分秒,如项目中需要的输入时分秒这样的数据,就有点遗憾了。不过幸好有了下面这一款插件的出现,那就是timepicker,专门针对datepicker的这个弱点,添加了选择时分秒的功能,截图如下: 这样一来,就可以输入带有时分秒的日期时间了。 本文正题来了:在同一个页面中使用两次或以上timepicker,会报一个错误:Maximum call stack size exceeded。同时浏览器卡死。查了下这个错误,是内存溢出,也就是说因为不恰当...
阅读全文