[html] 写H5和小程序有什么相同及不同的地方吗?

[html] 写H5和小程序有什么相同及不同的地方吗?

第一条是运行环境的不同。传统的HTML5的运行环境是浏览器,包括webview,而微信小程序的运行环境并非完整的浏览器,大家注意,我这里写的是“非完整的浏览器”,有以下几个原因小程序的开发过程中会用到HTML5相关的技术(并非全部)小程序最后的发布上线需要微信审核,微信在不更新自身软件的情况下可以将小程序更新到自身软件内,这就联想到了React Native框架,并且已经有开发者在微信小程序的开发工具源码中发现使用了React和NodeWebkit库官方文档中着重强调了脚本内是无法使用浏览器中常用的window对象和document对象(基于这一点,像zepto/jquery这种操作dom的库就被完全抛弃了)所以我个人认为,小程序的运行环境很有可能是微信开发团队基于浏览器内核完全重构的一个内置解析器,针对小程序专门做了优化,配合自己定义的开发语言标准,提升了小程序的性能。不过由于微信给开发者提供了开发工具,而开发工具中也内置了编程、调试、开发环境、发布于一身,我们也不用再探讨它的最终运行环境了,只要按照官方文档进行开发就可以了。并且从微信团队给开发者提供开发工具这一举动,让我联想到了苹果给开发者提供的X-CODE开发工具,可以想象微信的“野心”可见一斑第二条是开发成本的不同。这里我提出了一个问题,当我们面对一个HTML5 web开发需求时,我们需要考虑什么呢?抛去开发工具(vscode、sublimtext、Atom等)不谈,大到前端框架(Angular、react、vue、backbone等)、模块管理工具(Webpack 、Browserify 等)、任务管理工具(Grunt、Gulp等),小到UI库选择、接口调用工具(ajax、Fetch Api等)、浏览器兼容性等都要我们一一考略,再不济用jqery插件写H5,也要在开发过程中去寻找合适的jquery插件来配合项目。尽管这些工具可定制化非常高,并且提高了开发者的开发效率,但我相信项目开发的配置工作已经消耗了不少精力,尽管大部分开发者都有自己的配置模板,但长久以来对于项目中使用的各种外部库的版本迭代、版本升级所产生的成本应该也不低。而当我们面对一个微信小程序的开发需求时,我们需要考虑什么呢?微信团队提供了开发者工具,并且规范了开发标准,前端常见的HTML、CSS变成了微信自定义的WXML、WXSS,WXML中尽管全部是自定义标签,但官方文档中都有明确的使用介绍,相信上手应该是非常容易的;WXSS、JSON和JS文件中的写法稍有限制,但整体相差不多。在统一了这些标准之后,作为一个开发者,你会发现,自己只要专注写程序就可以了:当需要调用后端接口时,调用发起请求API当需要上传下载时,调用上传下载API当需要数据缓存时,调用本地存储API引入地图、使用罗盘、调用支付、调用扫码等等功能都可以直接使用UI库方面,框架自然带有自家weui库加成并且在使用这些API时,你不用再去顾虑浏览器兼容性,不用担心生产环境中出现不可预料的奇妙BUG,可见微信小程序的开发成本确实相比以往的web开发低很多。第三条是获取系统级权限的不同。微信小程序相对于HTML5 web应用能获得更多的系统权限,比如网络通信状态、数据缓存能力等,这些系统级权限都可以和微信小程序无缝衔接,也就是官方宣称的拥有Native App的流畅性能,而这一点恰巧是HTML5 web应用经常被诟病的地方,这也是HTML5的大多应用场景被定位在业务逻辑简单、功能单一的原因。第四条便是应用在生产环境的运行流畅度。这条无论对于用户还是开发者来说,都是最直观的感受。长久以来,当HTML5应用面对复杂的业务逻辑或者丰富的页面交互时,它的体验总是不尽人意,需要不断的对项目优化来提升用户体验。但是由于微信小程序运行环境独立,尽管同样用html+css+js去开发,但配合微信的解析器最终渲染出来的是原生组件的效果,自然体验上将会更进一步。

个人简介

我是歌谣,欢迎和大家一起交流前后端知识。放弃很容易,
但坚持一定很酷。欢迎大家一起讨论

主目录

与歌谣一起通关前端面试题

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/411681.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

javascript文字旋转效果

展开 | 隐藏 | 停止 | 旋转 | 改变旋转方向网页特效库背景特效整站模板导航特效时间特效图象特效文本特效代码&#xff1a;<html> <body> <style type"text/css"> BODY { background : #efefef; font : 12px Verdana; } A { color : #e70 } …

python的创始人、特点应用领域_python学习笔记(python发展介绍)

一、python介绍python的创始人为吉多・范罗苏姆(Guido van Rossum)目前python主要应用领域&#xff1a;・云计算・WEB开发・科学运算、人工智能・系统运维・金融&#xff1a;量化交易&#xff0c;金融分析等&#xff0c;作为动态语言的python&#xff0c;语言结构清晰简单&…

kubernetes ui 搭建

1、部署Kubernetes云计算平台&#xff0c;至少准备两台服务器&#xff0c;此处为3台 Kubernetes Master节点&#xff1a;192.168.0.111 Kubernetes Node1节点&#xff1a;192.168.0.112 Kubernetes Node2节点&#xff1a;192.168.0.113 2、每台服务器主机都运行如下命令 system…

[html] 你喜欢哪种布局风格?说说你的理由

[html] 你喜欢哪种布局风格&#xff1f;说说你的理由 flex个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题

异常:由于代码已经过优化或者本机框架位于调用堆栈之上,无法计算表达式的值...

异常:由于代码已经过优化或者本机框架位于调用堆栈之上,无法计算表达式的值 原因&#xff1a; 如果使用 Response.End、Response.Redirect 或 Server.Transfer 方法&#xff0c;将出现 ThreadAbortException 异常。您可以使用 try-catch 语句捕获此异常。 Response.End 方法终…

[html] 移动端如何让页面强制横屏显示?

[html] 移动端如何让页面强制横屏显示&#xff1f; 说个想法 不一定能实现web端的话 通过判断页面屏幕宽度&#xff08;这个得开陀螺仪权限吧&#xff09; 然后经行div旋转个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷…

多项目加载顺序修改_React推出并发模式:可中断渲染、指定加载顺序、并行处理多状态...

警告&#xff1a;本文档介绍的实验功能在稳定版本中尚不可用。不要在生产应用程序中依赖 React 的实验性构建。这些功能可能会发生重大更改&#xff0c;而且直到功能成为 React 的一部分之前这类更改都不会发出警告。本文档面向早期使用者和对此感兴趣的用户。如果你不熟悉 Rea…

[html] 制作一个多选的下拉框

[html] 制作一个多选的下拉框 定义盒子 a标签 绑定事件个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题

好东西仿Vista窗体

这是在网上看到的&#xff0c;然后改了一下&#xff01; 很好调用&#xff01;&#xff01;&#xff01;&#xff01; <SCRIPT src"_Window.js" typetext/javascript></SCRIPT> 窗体类 <SCRIPT src"index.js" typetext/javascript> /…

同步考勤数据 钉钉_作为学校,我为何选择微校wxiao考勤打卡?

随着移动互联网的兴起&#xff0c;越来越多的中小学摒弃了传统纸质考勤方式&#xff0c;采用智能考勤。目前&#xff0c;最常用的智能考勤方式可分为基于非移动端和移动端两种。其中&#xff0c;基于非移动端的包括人脸识别、指纹识别、虹膜识别考勤方式&#xff0c;基于移动端…

Guitar Por如何演奏刮弦

每当我们听到吉他现场演出的时候&#xff0c;看到吉他手在激烈的刮弦时&#xff0c;都觉得很酷&#xff0c;非常有感染力。刮弦在我们弹吉他或编曲时&#xff0c;会经常用到&#xff0c;虽然时间很短&#xff0c;但会为你加分不少。 那么我们应该如何演奏刮弦呢&#xff0c;我们…

[html] HTML全局属性(global attribute)有哪些(包含H5)?

[html] HTML全局属性(global attribute)有哪些&#xff08;包含H5&#xff09;&#xff1f; classiddatatypehrefstylewidthheighttargecheckeddisabledrequierefalttitlenamemulitp...多选valuereplaceholdersrc个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。…

3.6-3.8 分布式环境启动、测试

一、HDFS1、初始化文件系统#master上 [rootmaster hadoop-2.5.0]# pwd /opt/app/hadoop-2.5.0[rootmaster hadoop-2.5.0]# bin/hdfs namenode -format #最后几行看到successfully&#xff0c;代表成功2、启动#启动 [rootmaster hadoop-2.5.0]# sbin/start-dfs.sh集群批量命令…

unity 日志级别_【Unity】通用的Debugger日志模块

usingSystem;usingSystem.IO;namespaceUnityEngine{/// ///系统日志模块/// public classDebugger{public static bool EnableLog; //是否启用日志&#xff0c;仅可控制普通级别的日志的启用与关闭&#xff0c;LogError和LogWarn都是始终启用的。public static bool EnableTime…

[html] html的元素有哪些(包含H5)?

[html] html的元素有哪些&#xff08;包含H5&#xff09;&#xff1f; 块级元素&#xff1a;head -meat - 申明页面的诸多属性title - 窗口标题style - 样式body - 文本内容header - 头部块section - 内容块footer - 底部块article - 文章标签asidenavmenubirhr - 下划线h1-h6…

LINQ - 對付 SQL Injection 的 免費補洞策略 (转)

LINQ - 對付 SQL Injection 的 "免費補洞策略" LINQ - 對付 SQL Injection 的 "免費補洞策略" 作者&#xff1a;黃忠成 一連串的 Mass SQL Injection 攻擊&#xff0c;讓我們回憶起數年前的 SQL Injection 攻擊&#xff0c;多年後的今天&#xff0c;我們仍…

【BZOJ2054】疯狂的馒头(并查集)

/* 经典思路&#xff0c; 倒序并查集处理即可*/#include<cstdio> #include<algorithm> #include<cstring> #include<queue> #include<iostream> #define ll long long #define mmp make_pair #define M 1000010 using namespace std; int read()…

[html] 渐进式渲染是什么?

[html] 渐进式渲染是什么&#xff1f; 渐进式渲染指在做浏览器兼容时&#xff0c;先兼容最低版本&#xff0c;保证基本功能&#xff0c;然后再在高级浏览器上做优化个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎…

mysql int()_简单谈谈MySQL中的int(m)

我们在设计表的时候&#xff0c;如果碰到需要设置int(整型)的时候&#xff0c;通常会按照惯例(大家都这样写)设置成int(11)。那么这里为什么是11呢&#xff1f;代表的又是什么呢&#xff1f;以前我一直以为这里是在限制int显示的宽度&#xff0c;后来仔细研究和通过上网查询发现…

Visual Studio .Net团队开发[转]

一、 开发前的准备1、 在装有Windows 2000或者Windows XP Professional的机器上安装.net Framework SDK、Visual Studio.Net、Visual Source Safe 6C。&#xff08;如果用户操作系统是Windows .Net Server&#xff0c;则无须安装.Net Framework SDK&#xff0c;.Net Server自带…