当前位置: 首页 > news >正文 凡客衬衫官方网站家电网站建设需求分析 news 2025/10/26 16:17:09 凡客衬衫官方网站,家电网站建设需求分析,学校网站建设工作目标,安卓 wordpress 源码WebAssembly的发展历程相对较短#xff0c;但影响深远。WebAssembly 于 2015 年首次发布#xff0c;先驱技术是来自Mozilla的asm.js和Google Native Client#xff0c;最初的实现是基于asm.js的功能集。自2017年3月由WebAssembly创造的MVP的预览版发布以来#xff0c;WebAs…WebAssembly的发展历程相对较短但影响深远。WebAssembly 于 2015 年首次发布先驱技术是来自Mozilla的asm.js和Google Native Client最初的实现是基于asm.js的功能集。自2017年3月由WebAssembly创造的MVP的预览版发布以来WebAssembly发展迅速目前已经部署到了所有主流浏览器。到了2019年WebAssembly 1.0成为了W3C推荐的标准这打破了之前仅用JavaScript来进行Web开发的局面。那么什么是WebAssembly? 这篇文章让你从多方面了解WebAssembly这一技术。 WebAssembly是什么 WebAssembly简称Wasm是一种新型的、可以在现代Web浏览器中运行的代码。这是一种低级类汇编语言其二进制格式紧凑为诸如 C、C和 Rust 等低级源语言提供一个高效的编译目标以便它们可以在Web上运行。开发者通过自选语言编写代码然后将其编译为WebAssembly字节码进行运行。字节码在客户端通常是Web浏览器上运行在那里它被编译为可执行机器码并以接近原生的速度执行。 由于Wasm提供给浏览器的是以二进制格式编译的代码节省了下载和解析JavaScript代码时间使代码执行效率更高。此外WASM提供了开发者手动管理内存的选项以及可以直接访问内存的特性从而提升了运行效率。WebAssembly不仅具有高效的解析和执行能力还有着硬件和操作系统无关的低级虚拟机模型提供了安全的运行环境。当前WASM可以兼容主流的Web浏览器例如Chrome、Edge、Firefox、Opera和Safari。 WASM被设计为与JavaScript协同工作以此实现Web平台上的高性能应用。综合来看WASM在Web平台上表现出近乎原生的开发速度充分凸显了WebAssembly的性能与功能以及JavaScript的表现力与灵活性使得客户端应用可以轻松地在Web上运行。 WebAssembly的关键原理 在了解如何编译C语言为WASM的步骤之前你需要先了解几个关键原理。 模块Module 表示一个已经被浏览器编译为可执行机器码的 WebAssembly 二进制代码。模块中包含一系列的函数和数据例如全局变量和初始化的内存。模块是无状态的能够像ES2015 的模块一样声明导入和导出。 内存Memory WebAssembly使用一种名为线性内存的数据结构来表示内存。线性内存是一个连续的字节块其大小总是一页64 KiB的倍数。WebAssembly代码可以直接读取和写入这些字节。 表格Table 可调整大小的类似于数组的结构包含引用例如函数出于安全和可移植性考虑这些引用不能以原始字节形式存储在内存中。 实例Instance 一个已经与运行时使用的所有状态配对的模块包括内存、表和导入值集。一个实例就像一个 ES 模块它被加载到一个特定的整体中并带有一组特定的导入值。 一个WebAssembly模块定义了一系列的函数、全局变量、内存和表格它们通过与特定的导入和导出的值结合可以被实例化为一个运行的应用。而内存和表格也可以被实例化为运行的应用它们的值随着应用的执行而改变。 编译C/C为Wasm的操作步骤 在示例如何用C语言编译为 Wasm之前你需要满足一个前提条件 —— 获取 Emscripten SDK来配置安装环境。使用 Emscripten 编译主要适用于两个场景下面分别来了解一下具体的操作步骤。 创建 HTML 和 JavaScript 你可以用 C 语言编写一个程序使用 Emscripten SDK 将该程序编译成 WebAssembly然后创建一个 HTML 文件在网络服务器上加载并运行 WebAssembly 代码。 首先我们需要一个例子来编译。复制以下简单的 C 示例并将其保存在本地目录并命名为 hello.c 的文件中 #include stdio.hint main() {printf(Hello World\n);return 0; }现在使用进入 Emscripten 编译器环境时使用的终端窗口导航到与 hello.c 文件相同的目录然后运行以下命令 emcc hello.c -o hello.html我们通过命令传递的选项如下 -o hello.html —— 这指定我们希望Emscripten生成一个HTML页面来运行我们的代码以及要使用的文件名以及Wasm模块和JavaScript粘合代码来编译和实例化Wasm使其可以在Web环境中使用。 在这个时候你的源代码目录中应该有 二进制的Wasm模块代码hello.wasm一个包含粘合代码的JavaScript文件用于在原生C函数和JavaScript/Wasm之间进行转换hello.js一个HTML文件用于加载、编译和实例化你的Wasm代码并在浏览器中显示其输出hello.html 现在在支持 WebAssembly 的浏览器中加载生成的hello.html来运行示例。Firefox 52、Chrome 57、Edge 57 和 Opera 44 默认启用了 WebAssembly。如果运行顺利您应该会在网页上以及浏览器的 JavaScript 控制台上看到 Emscripten 控制台中的Hello world输出。 使用自定义 HTML 模板 首先在新目录中将以下 C 代码保存在名为hello2.c的文件中 #include stdio.hint main() {printf(Hello World\n);return 0; }在 emsdk 存储库中搜索文档shell_minimal.html。将其复制到之前新目录中名为html_template的子目录中。现在导航到您的新目录同样在您的 Emscripten 编译器环境终端窗口中并运行以下命令 emcc -o hello2.html hello2.c -O3 --shell-file html_template/shell_minimal.html这次我们传递的选项略有不同 我们已经指定了-o hello2.html这意味着编译器仍将输出 JavaScript 粘合代码 和.html。我们指定了-O3用于优化代码。Emcc 与任何其他 C 编译器一样具有优化级别包括-O0无优化、-O1、-O2、-Os、-Oz、-Og和-O3。-O3是发布版本的良好设置。我们还指定了--shell-file html_template/shell_minimal.html —— 这提供了您要用来创建将运行示例的 HTML 的 HTML 模板的路径。 现在让我们运行这个例子。上面的命令将生成hello2.html其内容与模板大致相同并添加了一些粘合代码来加载生成的 Wasm、运行它等。在浏览器中打开它您将看到与上一个示例大致相同的输出。 调用 C 语言定义的自定义函数 如果你在 C 代码中定义了一个函数而又想根据需要从 JavaScript 中调用该函数那么您可以使用Emscripten ccall()函数和EMSCRIPTEN_KEEPALIVE声明该声明会将您的函数添加到导出函数列表中来实现这一目的。 首先在新目录中将以下代码保存为hello3.c.默认情况下Emscripten 生成的代码只会调用 main() 函数其他的函数将被视为无用代码。在一个函数名之前添加 EMSCRIPTEN_KEEPALIVE 能够防止这样的事情发生。你需要导入 emscripten.h 库来使用 EMSCRIPTEN_KEEPALIVE。 #include stdio.h #include emscripten/emscripten.hint main() {printf(Hello World\n);return 0; }#ifdef __cplusplus #define EXTERN extern C #else #define EXTERN #endifEXTERN EMSCRIPTEN_KEEPALIVE void myFunction(int argc, char ** argv) {printf(MyFunction Called\n); }现在为了方便起见将包含 {{{ SCRIPT }}} 内容的 html_template/shell_minimal.html 也添加到这个新目录中在实际开发环境中显然应将其放在中心位置。现在让我们再次运行编译步骤。在最新目录下在 Emscripten 编译器环境的终端窗口中用以下命令编译 C 代码。请注意我们需要使用 NO_EXIT_RUNTIME 进行编译否则当 main() 退出时运行时将被关闭并且调用编译后的代码将无效。这对于正确的 C 语言模拟来说非常必要例如确保调用 atexit() 函数。 emcc -o hello3.html hello3.c --shell-file html_template/shell_minimal.html -s NO_EXIT_RUNTIME1 -s EXPORTED_RUNTIME_METHODS[ccall]如果你在浏览器中在此加载实例你将看到和之前相同的结果。现在我们需要运行新的 myFunction() JavaScript 函数。首先在文本编辑器中打开hello3.html文档。添加一个button元素如下所示就在第一个 script typetext/javascript 开始标签的上方。 button idmybuttonRun myFunction/button现在在第一个 script 元素末尾添加以下代码 document.getElementById(mybutton).addEventListener(click, () {alert(check console);const result Module.ccall(myFunction, // name of C functionnull, // return typenull, // argument typesnull, // arguments); });结尾 目前WebAssembly已经逐渐被用在很多Web应用中包括复杂的图形处理和游戏开发AI和机器学习音频和视频处理等等。随着技术的发展WebAssembly的应用领域和影响力将会越来越大。 我们最近发布的ComPDFKit Web Demo应用了最新的WebAssembly技术为用户提供一个纯前端的方案即在客户端上运行而无需依赖Server端处理PDF文档。使用这个方案你的PDF渲染速度更快并且在不同平台渲染的效果一致。欢迎联系我们获取更多信息并试用我们的Demo. 文章转载自: http://www.morning.qtqk.cn.gov.cn.qtqk.cn http://www.morning.qbmpb.cn.gov.cn.qbmpb.cn http://www.morning.pflpb.cn.gov.cn.pflpb.cn http://www.morning.hytr.cn.gov.cn.hytr.cn http://www.morning.yzfrh.cn.gov.cn.yzfrh.cn http://www.morning.kaylyea.com.gov.cn.kaylyea.com http://www.morning.xmrmk.cn.gov.cn.xmrmk.cn http://www.morning.mqpdl.cn.gov.cn.mqpdl.cn http://www.morning.dskmq.cn.gov.cn.dskmq.cn http://www.morning.chjnb.cn.gov.cn.chjnb.cn http://www.morning.hgcz.cn.gov.cn.hgcz.cn http://www.morning.nzcys.cn.gov.cn.nzcys.cn http://www.morning.kcbml.cn.gov.cn.kcbml.cn http://www.morning.pngfx.cn.gov.cn.pngfx.cn http://www.morning.yxlhz.cn.gov.cn.yxlhz.cn http://www.morning.zdgp.cn.gov.cn.zdgp.cn http://www.morning.pfbx.cn.gov.cn.pfbx.cn http://www.morning.wlfxn.cn.gov.cn.wlfxn.cn http://www.morning.qqpg.cn.gov.cn.qqpg.cn http://www.morning.hkysq.cn.gov.cn.hkysq.cn http://www.morning.c7507.cn.gov.cn.c7507.cn http://www.morning.pangucheng.cn.gov.cn.pangucheng.cn http://www.morning.lwnb.cn.gov.cn.lwnb.cn http://www.morning.rkqqf.cn.gov.cn.rkqqf.cn http://www.morning.skbhl.cn.gov.cn.skbhl.cn http://www.morning.fwlch.cn.gov.cn.fwlch.cn http://www.morning.rynqh.cn.gov.cn.rynqh.cn http://www.morning.zmwd.cn.gov.cn.zmwd.cn http://www.morning.xpmhs.cn.gov.cn.xpmhs.cn http://www.morning.rqgq.cn.gov.cn.rqgq.cn http://www.morning.kyzja.com.gov.cn.kyzja.com http://www.morning.sgbss.cn.gov.cn.sgbss.cn http://www.morning.nba1on1.com.gov.cn.nba1on1.com http://www.morning.tqlhn.cn.gov.cn.tqlhn.cn http://www.morning.tqfnf.cn.gov.cn.tqfnf.cn http://www.morning.cwknc.cn.gov.cn.cwknc.cn http://www.morning.mysmz.cn.gov.cn.mysmz.cn http://www.morning.xlwpz.cn.gov.cn.xlwpz.cn http://www.morning.smxrx.cn.gov.cn.smxrx.cn http://www.morning.kfjnx.cn.gov.cn.kfjnx.cn http://www.morning.mhnr.cn.gov.cn.mhnr.cn http://www.morning.nwrzf.cn.gov.cn.nwrzf.cn http://www.morning.gmmxh.cn.gov.cn.gmmxh.cn http://www.morning.drytb.cn.gov.cn.drytb.cn http://www.morning.yhdqq.cn.gov.cn.yhdqq.cn http://www.morning.krnzm.cn.gov.cn.krnzm.cn http://www.morning.hsgxj.cn.gov.cn.hsgxj.cn http://www.morning.qqrqb.cn.gov.cn.qqrqb.cn http://www.morning.zrhhb.cn.gov.cn.zrhhb.cn http://www.morning.fkwgk.cn.gov.cn.fkwgk.cn http://www.morning.mglqf.cn.gov.cn.mglqf.cn http://www.morning.ymwny.cn.gov.cn.ymwny.cn http://www.morning.fqpyj.cn.gov.cn.fqpyj.cn http://www.morning.ggmls.cn.gov.cn.ggmls.cn http://www.morning.gyqnp.cn.gov.cn.gyqnp.cn http://www.morning.chkfp.cn.gov.cn.chkfp.cn http://www.morning.qtsks.cn.gov.cn.qtsks.cn http://www.morning.fkgcd.cn.gov.cn.fkgcd.cn http://www.morning.cknws.cn.gov.cn.cknws.cn http://www.morning.dyxzn.cn.gov.cn.dyxzn.cn http://www.morning.cyysq.cn.gov.cn.cyysq.cn http://www.morning.zshuhd015.cn.gov.cn.zshuhd015.cn http://www.morning.jwdys.cn.gov.cn.jwdys.cn http://www.morning.dblfl.cn.gov.cn.dblfl.cn http://www.morning.dsprl.cn.gov.cn.dsprl.cn http://www.morning.wxrbl.cn.gov.cn.wxrbl.cn http://www.morning.hgtr.cn.gov.cn.hgtr.cn http://www.morning.fyxtn.cn.gov.cn.fyxtn.cn http://www.morning.sjpht.cn.gov.cn.sjpht.cn http://www.morning.lffbz.cn.gov.cn.lffbz.cn http://www.morning.kyzxh.cn.gov.cn.kyzxh.cn http://www.morning.lkkkf.cn.gov.cn.lkkkf.cn http://www.morning.hkcjx.cn.gov.cn.hkcjx.cn http://www.morning.wddmr.cn.gov.cn.wddmr.cn http://www.morning.rkjz.cn.gov.cn.rkjz.cn http://www.morning.bmlcy.cn.gov.cn.bmlcy.cn http://www.morning.jjzbx.cn.gov.cn.jjzbx.cn http://www.morning.nbsbn.cn.gov.cn.nbsbn.cn http://www.morning.ldwxj.cn.gov.cn.ldwxj.cn http://www.morning.tdttz.cn.gov.cn.tdttz.cn 查看全文 http://www.tj-hxxt.cn/news/251440.html 相关文章: 做代理的网站网站建设太金手指六六二九 无锡手机网站花都个性设计商城网站建设 彩票网站建设需要什么产品推广词 tor网站建设电子商务书城网站建设方案 浙江金圣建设有限公司网站网站开发的排期 长春市长春网站建设樟树有哪几个网站做爆药库 网站设计师大学学什么专业熊猫办公ppt模板下载免费 电脑pc端网站建设是什么意思漳州建设企业网站 网站 502错误做网站都需要考虑哪些 wordpress移动端投放广告seo博客大全 祁连县公司网站建设网络专业的网站建设价格低 徐州教育平台网站建设服务器安装wordpress wordpress主题 king成都白帽优化 php完整电商网站开发源码派多格宠物网站建设 网站运营的作用html页面网站建设中 网站模版开发提供网站建设的理由 电脑网站设计公司网站建设总结报告书 国内外优秀网站设计WordPress总是收到英文评论 南宁电商网站建设最有效的网站推广费用 网站开发易语言哪个做网站公司好 安徽网站seowordpress中文插件seo百度 网上做夫妻的网站logo标志设计网 网站会员系统wordpress网站素材类型 普通网站备案建立网站商店 网站ip流量查询网络用户管理系统注册 网站静态和动态区别是什么意思做一个企业网站设计 flash网站什么意思做网站的好处在哪里 电脑可以做服务器部署网站吗用.net做购物网站 商务网站建设与推广实训意义计算机网络专业主要学什么 在ppt里面做网站链接导出wordpress到文本