1.使用的数据库是什么?
答:使用的是非关系型数据库MongoDB,属于文档型数据库。文档数据库,即可以存放xml、json、bson类型系那个的数据。这些数据具备自述性,呈现分层的树状数据结构。数据结构由键值(key=>value)对组成。
选择原因:将相关联的数据存储在类似 JSON 格式,名称-值,并且使用 JSON 数据对象查询。它最适合无固定要求的组织数据。典型的使用案例是社交网络,客户管理和网络分析系统。我们的联系人数据关注的是人。他们难以预测,在不同的时间有不同的需求。使用NoSQL数据库,联系人列表将会从中受益。数据库将一个联系人的所有数据存储在一个单独的文档里的contacts 集合里。
由于联系人数据在单独的文档里,我们可以用一条查询语句获取一部分或全部信息。全文搜索也变得简单;在MongoDB里,我们可以这样定义 contact 中的所有文本字段的索引:
对于社交应用的场景,社交网络可能使用类似的联系人数据存储,但是它会根据功能集合扩展,比如关系链、状态更新、发送消息和”赞“。这些功能可能会根据用户需求来实现或者移除——无法预测它们会怎样演进。
文档可能会变得很长,但我们可以获取数组的子集,比如最近的更新。每个用户的所有的历史状态记录都能被快速搜索到。
参考来源:SQL vs NoSQL:如何选择?
2.数据库的数据类型有哪些?
3.查询语句有哪些?
参考来源:mcm数据云模块文档
4.使用什么来做后台
javascript语言,采用apache(阿帕奇)服务器进行本地预览效果,阿帕奇服务器是一个Web服务器端软件
5.如何开发的?
考虑到安卓和ios,使用APICLOUD跨平台混合开发技术,使用html5与JavaScript进行开发。
6.有什么收获
代码缩进方面,养成了良好的习惯,代码尽可能写的布局美观,阅读清晰。
代码注释方面可以尽可能的及时对所写的问题进行注释说明,方面同伴阅读及日后检查。
遇到问题在技术论坛查找相关解决办法,并根据实际问题,灵活应用到自己的项目当中。
7.MangDB怎么使用的?
绑定APP的相关信息,appId、appKey,管理员账号密码,数据库名称即可连接,相关语法有:“get获取”、“post增添、修改、删除”、
数据类型包括:String (字符串)、Number (数字)、Boolean (布尔值)、Date (日期时间)、File (文件类型)包含id、url、name三个字段、Array (数组)、Object (对象)与JSON对象相同、GeoPoint (地理位置)包含lat、lng两个字段、Pointer (一对一)、Relation (一对多)
遇到什么问题,如何解决的?
1.问题:下拉刷新,采用AJAX技术异步加载导致数据拼接顺序混乱。
解决:严格的说,AJAX并不算一门语言,只能算一门学科或技术的应用方式,本质上还是JavaScript编程。AJAX提交有同步提交和异步提交两种方式。后一种方式提交后不等服务器有响应继续执行客户端代码。可以利用异步提交显示一些界面效果,比如显示一些文字,动画等,可以使用客户端与服务器间交换部分数据而非整个页面文档,实现页面的局部更新。
为了让用户可以在前端获得较好的用户体验,我们采用了异步加载的方式从后台数据库获取数据在前台进行拼接。虽然数据是按照顺序返回的,但是在用for循环进行前台字符串拼接的过程中,发现并不是按照我们规定的顺序按照时间拼接的,而是有一定的随机顺序,查阅论坛相关问题后,发现是异步加载的问题,采用async 函数模块进行解决,当上一个循环中的拼接操作完成并返回结果之后,才进行下一个拼接操作,所以能很好的按顺序执行,而且能保证在本次result准备好之后才调用回调函数。
参考来源:async模块的异步处理
异步模式中的同步(一) 一组异步操作的同步
2.问题:热更新问题
为了避免在应用市场多次频繁更新,在配置文件中加入了热更新代码,采用增量更新,对比新旧文件包,用户在每次新打开软件的时候进行小规模下载并更新,加快更新与迭代速度。
3.问题:软件风格上,大小无法统一美观
借鉴Bootstrap前端框架,采用了AUI移动端前端框架。
4.问题:图片大小压缩
图片每次出来都会很慢加载,所以引入了