论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com
»
论坛
›
软件与程序人生
›
移动端开发
›
IOS
›
JSCore浅析及其在iOS上的使用
JSCore浅析及其在iOS上的使用
莱莱
金牌会员
|
2025-3-21 01:30:42
|
显示全部楼层
|
阅读模式
楼主
主题
979
|
帖子
979
|
积分
2937
一、浏览器的组成
浏览器的组成 上文中,中间部分是 WebKit,其他部分由浏览器实现,而 WebKit 中紧张分为四大部分:
1. WebKit Embedding Api
提供和浏览器进行交互的一些接口,好比进步后腿、新开窗口、新开页面、关闭页面等;
2. WebKit Ports(Platform Api)
跨平台 Api,感觉应该是 WebKit 暴露一些没有实现接口,供不同的平台去实现,最后完成统一的功能,如:渲染、SSL 认证、音视频等;
最典型的好比在 iOS 的 WKWebView 上,使用 CoreGraphic 来处置惩罚相关的渲染逻辑,而在 Android 上则使用 Skia 来处置惩罚渲染逻辑;
3. WebCore
该部分的功能是解析 HTML 天生 DOM 和 CSSOM ,合并之后天生渲染树最终天生纹理(Graphic Context):
渲染流程 在以 WebKit 为底子的浏览器中,几乎所有的浏览器都没有重写 WebCore,而是直接使用的 WebKit 源码中的 WebCore 来完成 HTML 的渲染。不同浏览器之间的紧张区别则在于 JSCore 的实现;
4. JSCore
早期由于只有 HTML 和浏览器两个角色。浏览器向配景发送表单时,即使是一个必选框没有填写,浏览器也无法获取 HTML/DOM,以是只能直接提交给服务端。由于其时网速慢,耗时很长之后让用户重新填写表单的体验很差,以是亟需一个角色来操作 HTML 进行验证;
浏览器 Javascript 语言的诞生的目的是为浏览器和 HTML 进行交互提供一个桥梁。而 Javascript 的情况提供、解析、运行、runtime 管理都由 JSCore 负责;
JSCore 的角色类似于编译器和假造机的结合;
JVM 假造机不负担编译的工作,编译器将 .java 文件编译天生字节码文件 .class,而 JVM 则直接解析字节码文件,根据不同的设备特性天生对应的二进制码,并且在整个 runtime 过程中管理内存和 GC 操作,JVM 的工作内容:
将字节码转化成二进制码(呆板码);
执行并管理 Runtime;
而 OC 中通过编译器天生 Mach-O 文件之后,当步伐被执行时,二进制代码直接被加载到假造内存并印射到物理内存中进行执行;
JSCore 则负担了编译器和假造机的角色。Javascript 起首被 JSCore 转化成字节码最终转化成二进制代码并执行,同时在 runtime 中管理内存和 GC,即 JSCore 的工作内容:
将 JS 代码编译成字节码;
将字节码转化成二进制码(呆板码);
执行并管理 Runtime;
JSCore解析流程
二、JSCore 的特性
1. 基于寄存器的指令集结构
代码执行效率更高,但是占用内存更大;
2. 单线程
一个 J
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
莱莱
金牌会员
这个人很懒什么都没写!
楼主热帖
SQL的约束
HCIA-OSPF协议
mac Error: EACCES: permission denied ...
MySQL 隐式类型转换导致索引失效问题 ...
你选对了超融合,可能却买错了交换机! ...
红标devcpp6.3编译器下载及配置教程 ...
攻防世界web 难度1新手练习
MySQL实战45讲 9
每日一练 数据库linux安装
老妈问我什么是超融合,我是这么和她解 ...
标签云
运维
CIO
存储
服务器
浏览过的版块
程序人生
Oracle
运维.售后
快速回复
返回顶部
返回列表