4。2 首页定位、最热商家、热门菜品实现 22
4。3 商家列表展示 25
4。4 商家搜索 26
4。5 购物车 28
4。6 拼单 29
4。7 下订单及就餐提醒 30
4。8 摇一摇 31
4。9 朋友圈 33
4。10 客服系统 35
4。11 图片上传的处理 35
4。12 直达号相关功能 37
4。13 java与Node。js之间的通信 38
4。14 系统配置项 38
5 系统效果展示 41
结 论 46
致 谢 47
参 考 文 献 48
1 绪论
1。1 课题研究背景
1。1。1 技术背景
移动互联网的火热朝天将本地应用与web应用的竞争推向了高峰。相信在第一款普及的浏览器Netscape出现时web应用就开始了与本地应用的竞争,但是由于当时web只是静态页面组成的站点,尚且不能称其为应用,所以几乎可以忽略其对本地应用的威胁。随着web的发展,页面由静态转向动态,后台服务方面,PHP、J2EE、ASP等web开发技术相继出现使得web开发日益走向成熟,前端方面JavaScript和CSS等技术的出现也为HTML页面增加了新的活力。2005年,AJAX技术出现,创造性地为web开发提供了新的方案,它的异步模式使得网页有了局部更新的能力,也使得web体验可以变得更加的流畅。
在这个过程中,虽然web技术日益成熟,但是web无论从流畅程度还是从界面绚丽美观方面,都与原生的本地应用有着巨大的差距。而近几年,最新web技术的出现使得这种差距变得越来越小。在速度方面,webkit浏览器内核的出现使得浏览器的解析速度得到了巨大的提升[1],而Google开发的V8引擎的出现更是使得JavaScript的执行速度有了质的飞跃。这些浏览器内核的优化都使得web应用变得更加的流畅。在界面表现与本地接口的调用方面,HTML5和CSS3的出现刷新了人们对web的理解。
HTML5的出现使得HTML的文档更加规范,同时使得web拥有了很多新的令人兴奋的能力[2]。如audio和video标签使得web页面可以原生的支持视频及音频播放,这意味着以后你的浏览器就算没有flash插件也一样可以观看视频播放音乐;WebSocket以及Server-send events使得我们的服务器可以无需用户请求就向用户推送数据,而WebsSocket则更是支持客户端与服务器的双向通信[3];Canvas使得浏览器可以用来绘制图形、制作动画,甚至可以借助WebGL绘制炫丽的3D图像[4];DOM存储(包括sessionStorage和localStorage)使得网站可以不必借助Cookie而在客户端存储数据[5]。以上HTML5特性已经在大多数浏览器得到了很好的支持,还有一些特性虽然现在支持率还不高,但是他们功能却令人期待,如getUserMedia API使得浏览器可以访问用户的视频和音频设备,这样用户就可以利用浏览器来录制并发送音频、视频;WebRTC使得浏览器可以进行点对点的即时通信,结合getUserMedia API用户可以在不需要任何插件的情况下利用浏览器进行视频或音频交流;IndexDB使得web应用可以在浏览器存储结构化的数据,就像原生应用一样拥有本地数据库。Service Worker使得web可以在无界面的情况下在后台运行脚本,它为web应用提供了离线可编程的能力,它能够拦截、缓存用户请求,这样,即使用户处于离线状态,service Worker也可以利用缓存对用户的请求作出回应,结合notification API它甚至可以像原生应用一样在用户处于非浏览器界面的情况下向用户推送消息,多么令人兴奋的功能!