高度自适应

flex布局 允许子元素伸缩

手机号正则

function checkPhone(data){
if(!(/^1[34578]\d{9}$/.test(data))){
alert("手机号码有误,请重填");
return false;
}
}
function checkTel(data){
if(!/^(\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14}$/.test(data)){
alert('固定电话有误,请重填');
return false;
}
}

db模块执行sql语句

一句一句执行,不能以;号隔开,否则后面的会不执行

vscode汉化

快捷键F1, 输入Configure Language 回车, 把en改成zh-CN, 保存, 重启vscode.

格式化时间

new Date().toISOString().match(/(\d{4}-\d{2}-\d{2})/)[1];

创建数据库操作

  • 创建数据库
DROP TABLE IF EXISTS addressList; CREATE TABLE addressList(user_id int)
// 如果有addressList这个表就不执行新建命令
  • 设置唯一索引
CREATE UNIQUE INDEX IF NOT EXISTS user_id_idx ON addressList (user_id)
// 在addresslist表中的user_id这个列设置唯一索引user_id_idx

IOS系统下输入框字体数量

使用onkeup事件有BUG, 如果点击键盘上面的文字输入到输入框,onkeyup不会触发,统计不了字体数量

使用oninput这个事件可以解决这个问题

android和ios行高不兼容

使用js判断 android比ios大9px

去掉input[type=number]的箭头

-webkit-appearance:none

git

在使用git的时候,每次执行

#git add *

都会提示这样一个警告消息:

warning: LF will be replaced by CRLF in XXXXXXXXXXXXXX.

虽然说没有什么影响吧。

不过就是觉得太碍眼了,

按照这样设置就没有问题了:

git config core.autocrlf false
// 禁止自动转换

这样设置git的配置后在执行add操作就没有问题了。

删除指定字符串

把指定字符串替换成空

str = str.replace('a','')

查找指定字符串是否含有某个子字符串

str.indexOf('aa') == -1
不含有指定字符串
str.indexOf('aa') >=0
含有

slice和splice

slice(start,end);剪切数组
splice(start, howmany, item1, ..., itemX); 方法用于插入、删除或替换数组的元素。

// start 开始插入/删除的位置
// howmany 插入/删除几项,必须是数字
// item1, ..., itemX 插入的内容, 不传的时候为删除

listContact模块在小米5s下的bug

每个页面第一次打开listContact列表会出现点击返回的index不正确, 右边字母导航也会出现重复

解决方法, 在打开正式有数据的列表之前打开一个空的列表,然后立马关闭

listContact.open({
x: -1000,
y: -1000,
w: 5,
h: 5,
data: [],
fixedOn: api.frameName
},function(ret,err){
})
listContact.close(); listContact.open({
// 有数据的列表
})

安卓下第二个bug

  • 设置选中的项, 安卓不起作用

解决办法: 在设置数据源的时候, 处理以选择数据

清除角标

api.setAppIconBadge({
badge: 1
});
// 为0时表示清除

css三角形带边框

原理: 写两个三角形, 一个覆盖另一个, 错开一个像素

 p:after {
content: "";
display: inline-block;
width: 0;
height: 0;
border-top: .15rem solid transparent;
border-right: .22rem solid #fff;
border-bottom: .15rem solid transparent;
position: absolute;
top: .25rem;
left: -.20rem;
}
p:before {
content: "";
display: inline-block;
width: 0;
height: 0;
border-top: .15rem solid transparent;
border-right: .22rem solid #E3E3E3;
border-bottom: .15rem solid transparent;
position: absolute;
top: .25rem;
left: -.22rem;
}

Deferred long-running timer task的问题

Deferred long-running timer task(s) to improve scrolling smoothness. See crbug.com/574343. at frame1.html : 0

延时函数使用不当

ios下创建时间对象

// 处理时间显示
function initTime(time) {
var timeRep = time;
time=time.replace(/-/g,':').replace(' ',':');
time=time.split(':');
var nowTime = new Date();
var pageTime = new Date(time[0],(time[1]-1),time[2],time[3],time[4],time[5]);
if ((pageTime.getDate() != nowTime.getDate()) || (pageTime.getFullYear() != nowTime.getFullYear()) || ((pageTime.getMonth()+1) != (nowTime.getMonth()+1))) {
// 不是今天
return timeRep;
} else {
// 今天
if (nowTime.getHours() != pageTime.getHours()) {
return nowTime.getHours() - pageTime.getHours()+ '小时之前'
} else {
return nowTime.getMinutes() - pageTime.getMinutes() + '分钟之前'
}
}
}

长按事件

var timeOutEvent=0;//定时器
//开始按
function gtouchstart(ele){
var e = window.event
var x = e.touches[0].pageX,y=e.touches[0].pageY
timeOutEvent = setTimeout("longPress("+x+","+y+")",500);//这里设置定时器,定义长按500毫秒触发长按事件,时间可以自己改,个人感觉500毫秒非常合适
return false;
};
//手释放,如果在500毫秒内就释放,则取消长按事件,此时可以执行onclick应该执行的事件
function gtouchend(){
clearTimeout(timeOutEvent);//清除定时器
if(timeOutEvent!=0){
//这里写要执行的内容(尤如onclick事件)
}
return false;
};
//如果手指有移动,则取消所有事件,此时说明用户只是要移动而不是长按
function gtouchmove(){
clearTimeout(timeOutEvent);//清除定时器
timeOutEvent = 0; };
//真正长按后应该执行的内容
function longPress(x,y){
timeOutEvent = 0;
$api.css($api.dom('.shadow'), 'display:inline-block;top:' + y + 'px;left:' + x + 'px;');
//执行长按要执行的内容,如弹出菜单
console.log("长按事件触发发");
}

两次往数据库插入同一条数据

  1. 首先查询数据所在的行(需要有一个唯一索引)
  2. 如果有数据就更新数据
    UPDATE 表名 SET 列名 = 数据,列2 = 数据2 WHERE 唯一索引 = 索引
  1. 没有该数据就插入
    INSERT OR REPLACE INTO 表名(列名1, 列名2, 列名3, 列名14)  VALUES (值1, 值2 ...)

APICloud框架——总结一下最近开发APP遇到的一些问题 (二)的更多相关文章

  1. APICloud框架——总结一下最近开发APP遇到的一些问题

    距离上一次发文都过去十天了, 下班回来懒的就想睡觉, 今天520一个重要的节日, 恩爱已经秀完, 该干点事情了!! 总结一下最近开发遇到的一些问题, 以及解决方案 纯css三角形 /* 没有哪个方向的 ...

  2. APICloud框架——总结一下最近开发APP遇到的一些问题 (三)

    ajax报错 Uncaught DOMException: Failed to execute 'send' on 'XMLHttpRequest': Failed to load 需要在服务器环境下 ...

  3. 前端开发app

    1.如果是 Angular 那就选 Ionic (一对好 CP) 2.如果是 Vue 那就选 Vux (基于 WeUI)3.如果是 jQuery 那就选 Framework7 (iOS 和 Andro ...

  4. APICloud开发App总结(一)

    apiCloud app 开发是最近一两年刚刚兴起的一种混合开发方式.常用的模块以原生方式开发好,然后用js进行粘合.组织,完成整个的app的逻辑.这种开发方式极大的提高了软件模块的复用率,加快了ap ...

  5. APICloud:轻松6步完成App软件开发

    现如今,谁不知道App绝对就是OUT,谁不用App简直没法过日子!但是说到App软件开发,不懂编程,不懂技术的人就一脸懵圈.在门外汉来看,App软件开发是一件非常困难的事情,然而APICloud却说, ...

  6. unity3d开发app的框架

    unity3d开发app的框架,开源地址 https://coding.net/u/liuhaili/p/U3DApp/git 希望能和有相同兴趣的朋友一起完善 打开Scene下的MainUI场景 目 ...

  7. 使用mui框架开发App,当input获取焦点时,键盘弹出,底部导航栏上升。

    转自 https://blog.csdn.net/elementFei/article/details/72917393 感谢 问题: 使用mui框架开发App,当input获取焦点时,键盘弹出,底部 ...

  8. H5开发APP考题和答案

    { "last_updated": { "$date": 1544276670569 }, "page_count": 1, "a ...

  9. 【初探IONIC】不会Native可不可以开发APP?

    前言 Hybrid技术流行已经有一段日子了,楼主的关注点也一直围绕着移动端围绕着Hybrid相关展开,Hybrid已经是大大提升开发效率的开发方式了,但是仍然需要至少一个IOS与Andriod,那么可 ...

随机推荐

  1. EAM(Enterprise Asset Management)企业资产管理系统

    EAM (Enterprise Asset Management)的缩写,EAM系统是指企业资产管理系统. EAM系统是在资产比重较大的企业,在资产建设.维护中减少维护成本,提高资产运营效率,通过现代 ...

  2. 父元素a标签的href默认行为以及子元素绑定的click事件的响应之间存在影响

    原文地址 背景 开发过程中遇到问题,简单写个demo 运行环境为Chrome 68 描述一下这个问题,当a标签内部存在嵌套时, 父元素a标签的href默认行为以及子元素绑定的click事件的响应之间存 ...

  3. python利用eval方法提升dataframe运算性能

    eval方法可以直接利用c语言的速度,而不用分配中间数组,不需要中间内存的占用. 如果包含多个步骤,每个步骤都要分配一块内存 import numpy as npimport pandas as pd ...

  4. Linux系统结构 详解

    Linux系统一般有4个主要部分: 内核.shell.文件系统和应用程序.内核.shell和文件系统一起形成了基本的操作系统结构,它们使得用户可以运行程序.管理文件并使用系统.部分层次结构如图1-1所 ...

  5. 【原】通过npm script运行webpack的原理

    原理:在项目中,局部安装依赖,依赖如果有创建命令的情况下会在node_modules/.bin目录创建软链接,pack.json默认读取到.bin下的命令. 如有理解不对,请各位大神纠正

  6. CPU C-States Power Saving Modes

    http://www.hardwaresecrets.com/article/611 Everything You Need to Know About the CPU C-States Power ...

  7. python自带的split VS numpy中的split比较

    Python split() 通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则分隔 num+1 个子字符串 str1.split() 里面的参数,可以是空格,逗号,字符串啥的,具体应用与 ...

  8. 基于spark邮件自动分类

    代码放在github上:click me 一.数据说明 数据集为英文语料集,一共包含20种类别的邮件,除了类别soc.religion.christian的邮件数为997以外每个类别的邮件数都是100 ...

  9. Lock的使用

    Lock是一个Java类,synchronized是一个Java关键字,两者有本质的不同 Lock需要手动释放锁,synchronized是自动释放锁 Lock适合大量同步的代码同步,synchron ...

  10. txt文本程序 打开python文件 另存为原来的文件名,不能覆盖原来的文件解决

    txt文本程序 打开python文件 另存为原来的文件名,不能覆盖原来的文件 如:1.py文件用txt文本程序打开后,另存为 1.py,保存完毕后,不覆盖1.py文件,会生成 1.py.txt文件 原 ...