- 博客(30)
- 资源 (5)
- 收藏
- 关注
原创 改造小蚁摄像头支持免费无限容量云储存(支持小容量SD卡篇)
实际测试下来发现,小蚁官方固件对小于4G容量的内存卡做了限制,一旦插入根本不录制视频了,同时也导致上一步的云存储失去了作用。把脚本放到后台的环境变量可执行目录里,这里是放到/home/base/tools/下。这里的思路是检测内存卡之前替换掉正版的cat命令 使它永远输出大于4GB的容量误导固件,检测完之后再把cat还原。2.修改/home/base/init.sh,在执行chkdisk命令的前后加上以下逻辑,通过上一篇的操作,我们成功将网盘挂载到了小蚁摄像头上,同时也避免了内存卡的频繁读写。
2024-08-25 13:43:51 704
原创 改造小蚁摄像头支持免费无限容量云储存(Samba挂载篇)
插卡摄像头最大的一个问题就是频繁的读写会导致内存卡寿命急速下降,哪怕是市面上支持NAS转存的摄像头也是先录制到SD卡里,然后把SD卡上的视频再转存到NAS。所以改造视频文件直接录制在云存储上,避免内存卡频繁的读写是一件一劳永逸且很有必要的事情。和常规NAS转存的思路不一样的是我们可以用ssh访问摄像头,所以对摄像头的权限是最高的,可以决定自定义挂载位置,而摄像头生成视频的目录是固定的,所以把Samba直接挂载到摄像头生成视频的目录上,这样就可以直接在云存储上生成视频文件,同时也避免了SD卡的读写损耗。
2024-08-25 13:08:53 1213
原创 s-nail最新配置格式
可以考虑注释掉s-nail.rc文件的bsdannounce/fwdretain命令。默认的s-nail配置文件运行时会报警告。但还是会报如下警告,提示格式即将废弃。使用网上的邮件配置虽然可以运行。改成以下格式就可以消除警告。
2024-08-25 11:43:38 262
原创 微信小程序内原生与H5通信方案-一次记录滚动位置引发的血案
很久都没有更新了,分享一点干货吧.最近做一个小程序项目,特点是页面超多,开发周期紧,性能要求不高,都用小程序原生语法写的话 估计要分包,这样就复杂了.于是项目采用了webview嵌套H5的方案,使用vue开发,周期短,开发效率高.写H5页面不可避免的会遇到记录滚动位置的需求.常见使用场景是从列表页点击跳转至详情页,再返回列表页需要保持滚动位置不变.这时候在小程序中一般有3种解决方案1.使用keepalive组件缓存当前页面.这种方案的弊端在于每个业务页面的滚动容器并不相同,有些是基于body
2021-03-20 11:39:59 964
原创 浏览器/node环境下 big5/gbk编码的字符串 urlencode
浏览器端function urlencode(str, charset, callback) { //创建form通过accept-charset做encode var form = document.createElement("form"); form.method = "get"; form.style.display = "none"; form.acceptCharset = charset; if (document.all) { //如果是IE那么就调用d
2020-11-08 22:03:37 700
原创 vue react history模式下 微信SDK调用失败解决方案
这里只考虑所有官方的解决方案都尝试过的情况,不考虑因为一些低级原因导致以上的错误。单页应用下前端路由自己维护history,通常都有几十个页面,其中某些页面需要调用微信JSSDK实现某些功能,但是在微信中经常会遇到invalid signature、the permission value is offline verifying之类的报错。而通常这类问题只要通过刷新下当前页面就可以解决。...
2018-12-05 14:48:46 1333
原创 JS正则截取首尾单双引号中间内容
var testStr="\"dsad'''''\"asdsadf\"";var reg = /^["|'](.*)["|']$/g;testStr.replace(reg,"$1");
2017-06-16 23:59:05 12217
原创 借助ajaxPrefilter ajax预处理函数实现ajax拦截器
最近在用requireJS+jquery重构PC官网,原来的代码太冗余,很多方法和变量都重复定义,也没有全局配置的地方。习惯了模块化开发和全局配置的我简直不能忍。原来的代码每次发ajax请求都需要手动序列化JS对象,添加时间戳/token,觉得太麻烦。于是想实现一个ajax的拦截器,能够自动帮我们处理这些。网上找到了一个hookAjax的库,原理类似于修改原生xmlhttprequest对
2017-05-27 16:12:03 2418
原创 单页应用(SPA)前端javascript如何阻止按下返回键页面回退
这几年单页应用很流行,利用html5新特性history.pushState/replaceState 可以操作URL无刷新动态加载html内容,达到比较好的用户体验。不过经常会遇到这样一个问题,那就是用户总是习惯于按返回键来返回上一页,移动端页面有弹框的时候,用户期望按下返回键来关闭弹框,这时候却发现返回到了上一页。。。其中的技术原理我们前端同学都知道,不过用户不理解啊,你也没办法解释给他们
2017-04-11 18:27:13 7566
原创 使用fetch上传文件失败的解决方案
下午在工作中遇到了一个问题,就是用fetch上传excel文件,开始以为很简单,结果花了一下午才解决。一开始使用fetch(url,formData) ,也设置了content-type:multipart/form-data,但是后台怎么也拿不到文件,用ajax可以正常上传。比较了一下两个请求的区别在于,ajax请求中content-type:multipart/form-data; b
2017-01-11 18:41:56 8586 3
原创 nginx/tomcat添加自定义header 403 forbidden
## Wide-open CORS config for nginx#location / { if ($request_method = 'OPTIONS') { add_header 'Access-Control-Allow-Origin' '*'; add_header 'Access-Control-Allow-Methods' 'GET,
2016-11-14 21:47:15 5937
原创 angular2.0 webpack css url 图片路径问题
基于angular 2.0 rc4 github上的一个种子项目二次开发 angular2-seed需要修改的几个地方:webpack.config.js增加以下配置项,需要注意的是必须先安装 node-sass、css-to-string-loader、sass-loader、url-loaderfooter.tsfooter.scss
2016-07-16 21:57:55 5872
原创 使用nginx搭建前端项目web服务器以及利用反向代理调试远程后台接口
今天给大家介绍的是在前后端分离的趋势下,前端同学们利用nginx来开发和调试自己的前端项目。换做以前,大家正常的前端调试流程可能是这样的。1、首先搭建好后台的语言环境2、把后台代码拉到本机3、通过启动 tomcat或者是apache。4、打开网页正常调试这样的好处是整个流程每个人很熟悉,没什么坑。接口调试不通那就找后台吧。坏处是1、前端同学需要熟悉基本的后台程序运行
2016-07-10 14:00:14 34010 8
原创 常见的网站性能优化
网站部署优化:1、公共库存放CDN,尽量有自己的图片服务器2、项目图片素材合成雪碧图(核心是减少HTTP请求)3、JS、CSS合并、打包、压缩4、JS脚本放底部、CSS脚本放头部 5、开启GZIP压缩6、合理使用缓存(包括304、application cache)代码层面:JS:1、尽量减少操作DOM的次数(因为会触发浏览器重绘机制),如
2016-07-10 12:48:07 435
转载 JS性能优化笔记
查看原文一、 让代码简洁:一些简略的表达方式也会产生很好的优化eg:x=x+1;在不影响功能的情况下可以简写为x++; 二、 变量名方法名尽量在不影响语意的情况下简单。(可以选择首字母命名)eg:定义数组的长度可以取名为:ArrLen而不需要取为ArrayLength。 三、 关于JS的循环,循环是一种常用的流程控制。JS提供了三种循
2016-04-20 17:45:55 565
原创 angularJS实现无刷新文件下载
$scope.getExcel = function () { $http.post("/production/statistics/export", { storeId: $scope.$parent.currStore.storeId, date: $scope.$parent.ledgerDate.get
2015-10-23 17:45:01 9328 1
原创 JS获取指定年月天数
function getMonthDays(year, month) { var tmpList = []; var endDay = new Date(year, month, 0).getDate(); for (var i = 1; i ; i++) { tmpList.push(i 10 ? "0" + i : i.toString()) }
2015-10-23 17:38:00 666
原创 搞定git操作只需三步
git操作实在太繁琐,逼不得已总结出了下面三步,当作私人笔记。省的后面再找1、克隆远程指定分支代码到本地.git clone -b deve(远程仓库分支名) --single-branch http://......................git(远程仓库分支路径)2、从远程指定分支拉取最新代码并合并到本地当前分支git pull origin deve(远程
2015-05-25 16:10:57 664
原创 那些年之cordova踩过的坑
私人笔记如果安装的是crosswalk with cordova 整合版的话 添加插件的方法是需要的环境 nodejs、git1、npm安装 plugmannpm install -g plugman2、CD到当前项目根目录cd F:\music3、安装ngcordova插件(这一步千万别信官网教程坑死你不偿命,照我的来)plugman inst
2015-05-15 15:53:39 1366
原创 关于Angular 指令的理解
之前虽然一直都在用这套框架,但是对于指令还是知之甚少,感觉是蛮复杂的东西。看了之后也没有真正理解。 最近在做一个Angular的小项目,卡在了Angular的生命周期和自定义指令上。纠结了好几天,终于今天在地铁上灵光一闪想通了。所以赶紧把它记下来,免得后面忘记了。 我们一直都说angular的加载流程是先载入HTML片段,其中在加载标签的时候加载了所有的JS库,包括我们自己写的所有的
2015-05-08 10:19:04 1001
原创 C# WebBrowser执行自定义JS方法
/// /// 执行自定义JS函数 /// /// 要操作的WebBrowser的页面对象 /// 自定义JS函数 /// 自定义JS函数名 /// public string ExecJS(HtmlDocument Doc,string JsFun,string FunNanme
2014-05-22 14:01:48 2743
原创 JS 获取Request参数对应值
function GetRequestParamValue(paras) { var url = location.href; var paraString = url.substring(url.indexOf("?") + 1, url.length).split("&"); var paraObj = {} for (i = 0; j = paraString
2014-05-19 15:48:37 1709
原创 JS 补零
function PadZero(num, n) { var i = (num + "").length; while (i++ < n) num = "0" + num; return num;}
2014-05-19 15:43:55 890
原创 医调项目之ajax 请求
function DoAjaxRequest(sUrl, bAsync, callback) { var sRtn = ""; try { var rs = $.ajax({ url: sUrl, async: bAsync, cache: false, complete
2014-05-19 15:38:24 827
WIN7下一键禁启用本地连接
2012-04-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人