热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Web加速器:Loderv1.0宣布?

Loder是一个轻量级加载器,经由历程合理地声明资本使命依靠关联,以最高效情势实行Web加载,供应壮大的机能追踪,延续优化机能瓶颈。现在线性集约式的Web资本加载形式,尤其在前提有

《Web加速器:Loder v1.0 宣布 ?》

Loder是一个轻量级加载器,经由历程合理地声明资本使命依靠关联,以最高效情势实行Web加载,供应壮大的机能追踪,延续优化机能瓶颈。

现在线性集约式的Web资本加载形式,尤其在前提有限的挪动端,很大水平限定了页面加载体验。费很大劲把剧本体积降下来,却取得极为有限的机能收益。运用微核启动器Loder,疾速启动运用,应用在Bundle加载实行同时,展现Loading交互、提议鉴权、初始数据要求等,最大化应用装备才能进步页面衬着机能。

Loder具有以下特征:

  • Dead Simple API
  • 声明式依靠,极简的资本使命治理
  • 极致加载,统统资本使命都以最适合时候加载
  • 轻量体积(1.4kb Gziped), 极速启动运用
  • 险些无需修正逻辑,简朴几步即可加快运用至极致!

运用示例

举个栗子,运用会在运转前先把所需剧本预备稳健,之后会递次实行鉴权、受权、猎取数据、衬着。大多数的Web都邑经由历程相似的形式去加载衬着。流程大抵以下:

《Web加速器:Loder v1.0 宣布 ?》

看似一种很直观的体式格局却很集约,机能优化异常磨练我们对资本使命加载的营业逻辑、依靠、递次的明白,精细化运营这些历程,Web机能能够取得意想不到地提拔。我们能够大抵整顿一下运用的资本使命加载历程:

  • 运用启动

    • 依靠[ “首屏数据”, “运用鉴权”, “运用 Bundle 加载&实行”]
    • 启动运用
  • 运用鉴权

    • 依靠[ “加载鉴权 SDK”, “取得用户 ID” ]
    • 提议鉴权要求
  • 首屏数据

    • 依靠[ “要求客户端 axios” ]
    • 提议多个要求

能够看到,有一部分资本使命是能够正交举行的,这就是我们充分应用浏览器特征进步机能的症结。然则,云云烦琐的加载,保护起来并不轻易。Loder供应极简的API,经由历程声明式注册资本和使命,即能以最优情势举行Web加载,以上述运用启动流程来举例:

启动运用前鉴权

// 资本注册 —— 鉴权SDK
loder.add('authSDK', loder.loadScript('//sample.com/sdk.js'))
// 使命注册 —— 猎取用户id
loder.add(
'userId',
() =>
new Promise(resolve => {
resolve('id')
})
)
// 使命注册 —— 鉴权
loder.task(
'auth', ['authSDK', 'userId'],
() => new Promise(resolve => {
// do auth
resolve('success')
})
)

加载首屏数据

// 资本注册 —— 要求客户端
loader.add('axios', () => import('axios'))
// 资本注册 —— 首屏数据
loder.task(
'fpData', ['axios'],
() => new Promise(resolve => {
const axios = loder.get('axios')
return axios('//sample.com/userData.json')
})
)

启动运用

// 资本注册 —— JS Bundle
loder.add('createAppFn', () => import('./createAppFn'))
// 使命声明 —— 运用启动
loder.task('bootstrap', ['auth', 'fpData'])
// 统统停当,实行加载
loder.run('bootstrap', async () => {
const create = await loder.echo('createAppFn')
create("Awesome Time")
})

经由历程异常的简朴声明,Loder不单单议将PageLoaded机能提拔至极致,以至能够应用首屏数据要求时期,去加载运用所需的资本剧本,以及消费大批时候实行的Bundle

《Web加速器:Loder v1.0 宣布 ?》

Loder vs SSR

除了高效加载、极简API、无营业入侵性外,Loder作为一个客户端加载器,具有更多自然的上风:

特征计划LoderSSR
Server 支撑不须要须要保护分外 SSR 服务器
Server 压力低,一般运用 CDN 计划高,每次要求需 Server 支撑
Client无需修改营业逻辑client-ssr 两套版本
通用性任何支撑 JS 浏览器简朴页面,如客户端鉴权状况不支撑
首屏衬着时候快,无需糟蹋接口要求时候极快,一次要求可猎取首屏内容
页面空缺时候疾速启动,极大削减空缺时候大数据查询接口,空缺时候较长
可交互时长短,剧本加载完成即可交互中,ssr 后照旧须要完整加载 bundle

末了

Loder作为一个Web极致机能加载器,驱动Web高效加载衬着,经由历程机能跟踪辅佐发明&优化机能瓶颈,也促使我们去思索怎样构造Web的加载时序。

Links

Landing page: http://loder-docs.scoii.com


推荐阅读
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 本文介绍了前端人员必须知道的三个问题,即前端都做哪些事、前端都需要哪些技术,以及前端的发展阶段。初级阶段包括HTML、CSS、JavaScript和jQuery的基础知识。进阶阶段涵盖了面向对象编程、响应式设计、Ajax、HTML5等新兴技术。高级阶段包括架构基础、模块化开发、预编译和前沿规范等内容。此外,还介绍了一些后端服务,如Node.js。 ... [详细]
  • Netty源代码分析服务器端启动ServerBootstrap初始化
    本文主要分析了Netty源代码中服务器端启动的过程,包括ServerBootstrap的初始化和相关参数的设置。通过分析NioEventLoopGroup、NioServerSocketChannel、ChannelOption.SO_BACKLOG等关键组件和选项的作用,深入理解Netty服务器端的启动过程。同时,还介绍了LoggingHandler的作用和使用方法,帮助读者更好地理解Netty源代码。 ... [详细]
  • 本文介绍了Java后台Jsonp处理方法及其应用场景。首先解释了Jsonp是一个非官方的协议,它允许在服务器端通过Script tags返回至客户端,并通过javascript callback的形式实现跨域访问。然后介绍了JSON系统开发方法,它是一种面向数据结构的分析和设计方法,以活动为中心,将一连串的活动顺序组合成一个完整的工作进程。接着给出了一个客户端示例代码,使用了jQuery的ajax方法请求一个Jsonp数据。 ... [详细]
  • 微信官方授权及获取OpenId的方法,服务器通过SpringBoot实现
    主要步骤:前端获取到code(wx.login),传入服务器服务器通过参数AppID和AppSecret访问官方接口,获取到OpenId ... [详细]
  • Vue基础一、什么是Vue1.1概念Vue(读音vjuː,类似于view)是一套用于构建用户界面的渐进式JavaScript框架,与其它大型框架不 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 动态规划算法的基本步骤及最长递增子序列问题详解
    本文详细介绍了动态规划算法的基本步骤,包括划分阶段、选择状态、决策和状态转移方程,并以最长递增子序列问题为例进行了详细解析。动态规划算法的有效性依赖于问题本身所具有的最优子结构性质和子问题重叠性质。通过将子问题的解保存在一个表中,在以后尽可能多地利用这些子问题的解,从而提高算法的效率。 ... [详细]
  • 本文介绍了一个React Native新手在尝试将数据发布到服务器时遇到的问题,以及他的React Native代码和服务器端代码。他使用fetch方法将数据发送到服务器,但无法在服务器端读取/获取发布的数据。 ... [详细]
  • Node.js学习笔记(一)package.json及cnpm
    本文介绍了Node.js中包的概念,以及如何使用包来统一管理具有相互依赖关系的模块。同时还介绍了NPM(Node Package Manager)的基本介绍和使用方法,以及如何通过NPM下载第三方模块。 ... [详细]
author-avatar
政庆雅竹8
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有