首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Web 应用开发进化论

时至今日,它们大多数在现代 Web 应用程序仍然非常活跃。 在单应用程序出现之前,浏览器会从网站服务器请求 HTML 文件所有链接资源文件。...相比之下,单页面应用程序主要用 JavaScript 封装整个应用程序,JavaScript 包含如何使用 HTML(和 CSS )渲染以及渲染什么内容所有知识。...可以说,在我们拥有单应用之前,我们一直在使用应用,因为对于每个页面(例如 /about),都会向 Web 服务器发出一新请求,以请求它所需所有文件。...然而,多页面应用并不是一真正术语,因为它是单应用流行之前默认设置。 代码拆分 我们了解到,SPA 默认以一 HTML 文件和一 JS 文件形式提供。...为了将 React 应用(或库)打包到一或多个(带有代码拆分)JavaScript 文件,另一种称为 tree shaking 技术开始发挥作用,它会帮助我们消除掉未使用代码,避免这些代码被打包

4.2K10
您找到你想要的搜索结果了吗?
是的
没有找到

LsLoader——通用移动端Web App离线化方案

前端业务逻辑也从一精心按顺序排好CSS、JS变成了入口文件为根有向无环图。图上节点可能是JS方法/CSS糖/.vue单文件模块。我们开发源文件到浏览器一般经历下图过程: ?...结合业内其它离线化方案,我们在业务开发推出了LsLoader.js解决缓存问题,把模块文件缓存到浏览器localStorage,用JS控制模块文件更新与运行。...这种设计不同于美团移动版i.meituan.comTruckJS或者Scrat.js等构建工具,使用前面两种构建方案需要使用一整套构建配置,LsLoader只做一中间件形式构建工具,方便从你业务代码接入...这仅仅是简单Vue列表,如果多多组件应用下载浪费会更严重。 下面我再带来个复杂点页面: 一Vue实现2面切换手机界面,使用LsLoader和不使用LsLoader区别有多大?...而且这9文件,6文件可以页面间公用,包括2类库(Vue、Zepto);3JS模块(getURLParams、historyState、WebView API)通用逻辑函数;1公共Vue组件

1.7K170

【分享】Vue.js新手入门指南

不要担心,如果你慢慢看完这里面的所有问答,一定会对前面那些可能你从未听说过专业术语有一种恍然大悟感觉。 2.Vue.js到底是什么?...至于是如何响应,大家可以先把下面这段代码随便粘贴到一扩展名为html文件然后用浏览器打开,随便在文本框里面输入一些文字,观察一下页面变化。 <!...结合标题来说,就是vue.js会自动响应数据变化情况,并且根据用户在代码预先写好绑定关系,对所有绑定在一起数据和视图内容都进行修改。...12.为什么要用Webpack 前面说了,做一应用程序本身就相当复杂,而且在做时候肯定会使用到很多素材和别的第三方库,我们该如何去管理这些东西呢?...因为单应用程序中用到很多素材,如果每一素材都通过在HTML以src属性或者link来引入,那么请求一面的时候,可能浏览器就要发起十多次请求,往往请求这些资源都是一些脚本代码或者很小图片,这些资源本身才几

3.5K40

用 Vue 开发自己 Chrome 扩展

在本教程,我将向你展示如何为 Chrome 构建一能够改变新标签行为简单扩展。...这很好,因为这为我们后台脚本提供了 Hot Module Reloading。 src文件包含我们将用于扩展所有文件。...当样板文件将扩展构建到 dist 文件时,它将通过 vue-loader 管理所有 .vue 文件并输出一浏览器可以理解 JavaScript 包。...在新标签使用 Vue 组件 首先从 background.js 删除烦人 alert 语句。 在 src 文件创建一 tab 文件夹来存放新标签代码。...这会在项目根目录创建一名为 dist-zip 文件夹,其中包含准备上传到 Web Store ZIP 文件。 对于简单小扩展,这就够了。

2.8K30

Windows 8.1 应用再出发 (WinJS) - 创建一简单项目

WinJS项目里没有Properties目录去描述程序集信息 引用目录包含了应用需要程序包,如图中Windows Library包含了我们需要js 和 css css目录存放页面使用css...文件,如图中default.css文件会在default.html中使用 同样js目录存放js文件,default.js会在default.html中使用 images目录类似于XAML项目中...有一地方需要注意,那就是应用程序选项卡 入口点 变成了 起始 ,熟悉BS开发同学们肯定不会对起始陌生。 下面来看看起始 default.html: 此处显示内容 这是一很简单html构成,我们看到文件添加了对WinJS 和 针对起始...而这个操作意思是把声明控件绑定到所有元素上,并且在指定根元素启动。 如果我们想在default.html加载时跳转到我们指定页面,比如main.html,需要做哪些动作呢?

820100

Webpack实战-构建同构应用

构建同构应用最终目的是从一份项目源码构建出2份 JavaScript代码,一份用于在浏览器端运行,一份用于在 Node.js 环境运行渲染出 HTML。...其中用于在 Node.js 环境运行 JavaScript代码需要注意以下几点: 不能包含浏览器环境提供 API,例如使用 document 进行 DOM 操作,  因为 Node.js 不支持这些...解决方案 接下来改造在3-6使用 React 框架中介绍 React 项目,为它增加构建同构应用功能。 由于要从一份源码构建出2份不同代码,需要有2份 Webpack 配置文件分别与之对应。...编写 HTTP 服务调用 libraryTarget: 'commonjs2', // 把最终可在 Node.js 运行代码输出到一 bundle_server.js 文件...为了最大限度复用代码,需要调整下目录结构: 把页面的根组件放到一单独文件 AppComponent.js,该文件只能包含根组件代码,不能包含渲染入口代码,而且需要导出根组件以供给渲染入口调用,

95610

爱奇艺RN低代码引擎:千变万化、快速搭建万花筒

我们整理了他演讲,以期解决您在 React Native 低代码系统架构设计时可能遭遇某些问题。(下文以甘泉老师第一人称叙述) 爱奇艺专题页面包含丰富排版和动画效果。...最外层为 App 层,一 App 包含 Page,Page 包含一组 Item 组件(Item 可理解为一长列表 Item),每个 Item 由多个 Element 构成。...我们采用依赖注入方式实现和使用所有的 Page、Item 和 Element 组件,打破了组件之间强依赖。...爱奇艺众多业务共享一引擎,使用自研打包工具可将包含 RN 基础功能代码剥离出去(大约 684KB),打出只有业务代码 Bundle。...利用该打包服务,可获取所有 source map 文件,可在爱奇艺 APM 系统还原崩溃栈中被混淆 JS 代码符号,效果如下所示: 端上捕获投递原始 JS 崩溃栈(图中左侧),没有详细信息。

85730

Webpack实战-构建同构应用

构建同构应用最终目的是从一份项目源码构建出2份 JavaScript代码,一份用于在浏览器端运行,一份用于在 Node.js 环境运行渲染出 HTML。...其中用于在 Node.js 环境运行 JavaScript代码需要注意以下几点: 不能包含浏览器环境提供 API,例如使用 document 进行 DOM 操作,  因为 Node.js 不支持这些...解决方案 接下来改造在3-6使用 React 框架中介绍 React 项目,为它增加构建同构应用功能。 由于要从一份源码构建出2份不同代码,需要有2份 Webpack 配置文件分别与之对应。...编写 HTTP 服务调用 libraryTarget: 'commonjs2', // 把最终可在 Node.js 运行代码输出到一 bundle_server.js 文件...为了最大限度复用代码,需要调整下目录结构: 把页面的根组件放到一单独文件 AppComponent.js,该文件只能包含根组件代码,不能包含渲染入口代码,而且需要导出根组件以供给渲染入口调用,

1.5K60

chrome插件实时通信几种方式

在chrome[1]插件开发我们知道,background.js是独立于浏览器,在background.js主要负责popup与content.js交互,在某些时候,也许你需要在一插件设置与...type: "open_set_page", }); }; 设置与background.js通信 我们在content.js打开了一设置,此时如果设置向与content...content实时通信 比如现在有场景,我在设置需要设置content页面的主题,而且需要实时修改,那么怎么办呢?...,content确实是可以实时变化了,但是,当你刷新,当前状态就会改变,所以你需要如何保持当前状态,那么你需要用到插件缓存功能 在使用缓存功能之前,你需要在permission添加storage...,比如一插件设置与content.js实时通信,我们是借助先查询所有的tabs,chrome.tabs.query({}, callback),然后再向所有的tabs发送消息chrome.tabs.sendMessage

1.5K10

【Webpack】315- 手把手教你搭建基于 webpack4 vue2 多应用

git commit 提交时根据 eslint 进行校验 保证一团队提交代码统一性,可以参考我之前掘金文章,手摸手带你实践标准前端开发规范 介绍差不多了,废话不多说,直接开整: 如何使用 git...多:最终打包生成多个入口( html 页面),一般每个入口文件除了要引入公共静态文件js/css )还要另外引入页面特有的静态资源 单:只有一入口( index.html ),页面需要引入打包后所有静态文件...,所有的页面内容全由 JavaScript 控制 直接看代码吧,在 utils 中有一 getentryconfig.js 去获取 entry 配置,其中包括了入口选择性引用模板 html,babel-polyfill...`) ];}); module.exports = { HTMLPlugins, Entries}; 上面的 js 引用了一 page_config.js,这个 js ,主要是多页面的配置信息...这个时候我们可以使用两种方式: 使用vue-router控制路由 这个我觉得不用多说了吧,在需要使用路由文件夹下创建一router.js,并且引入vue-router,一定要在某个文件夹下创建哦,否则几个页面公用一

1K10

如何用Express实现一ADUS项目

利用Express实现ADUS项目使用Express可以快速地实现一包含增删改查(CRUD)功能Web项目,下面是一基于Express实现简单ADUS(添加、显示、更新、删除、搜索)项目模块化思想模块如何划分...一模块应该只包含相关功能,以便于代码维护和管理。将路由和控制器分离。路由应该负责请求转发和参数解析,而控制器应该负责具体业务逻辑。使用中间件实现公共功能。...比如身份验证、请求日志记录等功能可以使用中间件实现,避免代码重复。将模块拆分为多个文件。当一模块变得庞大时,可以将其拆分为多个文件,以便于代码管理和维护。...可以使用Node.js模块系统来实现文件拆分和组合。...,/studens渲染静态出来路由设计提取路由模块由于接下来一系列业务操作都需要处理文件数据,所以我们需要封装Student.js'先写好student.js文件结构查询所有学生列别哦APIfindByIdsaveupdateByIddeleteById

15200

Chrome Extension

HTML文件,点击扩展图标,弹出面板页面(如果在manifest.json配置了default_popup为该文件的话) ├ demo.js //一或多个js文件,popup面板加载js脚本文件...//需要任何其他文件,比如图片icon.png manifest.json必不可少 至于HTML、CSS、JS文件组织,跟普通 Web 开发一样 出于安全考虑,入口html文件JS代码只能通过...script标签引用外部脚本文件,内嵌JS代码会失效。...manifest.json 每一扩展程序、可安装网络应用以及主题背景都有一 JSON 格式清单文件,名为 manifest.json,提供重要信息, 包含一些属性,如您扩展程序名称与描述、它版本号等等...打包程序将创建两文件:一 .crx 文件,是实际可安装扩展程序;另一是 .pem 文件包含私有密钥。 不要丢失私有密钥!确保 .pem 文件保密,并存放在安全地方。

2.8K30

原来前端工程编译可以这样优化!

由此我们可以从一使用压缩器感受到编译时优化是怎么样作用过程。...针对上面的问题Rollup这类工具就诞生了,只要是使用了ES模块,它就可以让所有的模块都放在同一作用域中,这样压缩器就有用武之地。...单应用包有时候会很大,整个下载下来的话对用户来说性能上是不友好。理想情况应该是在访问某个单应用时候只下载所访问面的JavaScript代码,要实现这样效果就需要将代码切分成块。...由于所有的关联信息都是在main.js里面,只有先加载main.js后才会知道后续要加载是哪个js文件,这就造成了在服务端渲染时候会有一次额外加载,并造成延时。...在VueSSR里面客户端和服务端分别会有一次渲染。在客户端渲染时候除了生成分割开代码块之外,还会生成一信息文件包含了这次构建这些模块对应信息。

95860

appwebview通识篇(上)

,一种是本来就可能限定于只有app会嵌入h5面,这部分在与app进行通讯时候,我们更多是通过约定jsBridge方式。...jsBridge说更直白一点,就是网页在载入时,向页面内注入一指定js文件,然后页面内就会有一前端和app都知道方法,通过这个方法前端可以唤起app交互控件,甚至是跳转到其他app页面,也可以知道.../”后为app版本号 内嵌H5面的加载(安卓) 1.原生提供一框架页面给H5面。...框架只提供一叫InnerWeb类(这点js不需要知晓).如何需要在本地加载一纯H5内嵌页面,请使用IntentHelper.startWeb(Context context, String url...调用Android本地Java方法 本地提供给js调用映射对象,这需要注入,我们同一使用叫app对象。

5.1K20

微信小程序开发实战(19):页面导航

在前面的章节尽管介绍了很多API和组件,但所有代码都放在了一页面(布局放在了wxml文件JS代码写在了js文件),然而,对于一有实际应用价值小程序,不可能只有一页面,如果小程序包含了多个页面...要实现页面导航,需要使用标签,该标签允许在当前页面显示另一页面,也允许显示一新页面。例如,下面的布局代码使用了两标签。...这4文件代码如下: page1.wxml {{title}} page1.js Page({...和page2.js文件代码可以看出,通过onLoad事件options参数返回传入参数(title和color),并将这两参数值赋给title和color变量。...注意:新添加页面,要在app.json文件pages中注册,否则无法使用新建立页面。

1.3K20

webpack 核心概念和构建流程

:通过Eslint检查js代码; image-loader:加载并且压缩图片晚间; file-loader:文件输出到一文件,在代码通过相对url去引用输出文件; url-loader:和file-loader...4.业务场景和对应解决方案 1.单应用 一应用需要配置一entry指明执行入口,web-webpack-plugin里WebPlugin可以自动完成这些工作:webpack会为entry生成一包含这个入口所有依赖文件.../src/目录下所有每个文件夹作为一单页页面的入口,自动为所有的页面入口配置一 WebPlugin 输出对应html。 要新增一页面就在 ..../src/ 下新建一文件包含这个单应用所依赖代码,AutoWebPlugin 自动生成一名叫文件夹名称html文件。 3.代码分隔优化 一代码分割对浏览器首屏效果提升很大。...在应用有多个页面的场景下提取出所有页面公共代码减少单个页面的代码,在不同页面之间切换时所有页面公共代码之前被加载过而不必重新加载。

76820

Chrome开发,debug使用方法。

打开开发者工具就长下面的样子: 不过我一般习惯与点左下角那个按钮,将开发者工具弹出作为一独立窗口: 下面来分别说下每个Tab作用。...你点一下就知道了哦,嘿嘿) 你还可以对某个元素进行监听,在JS对元素属性或者HTML进行修改时候,直接触发断点,跳转到对改元素进行修改JS代码处: Elements标签右侧可以对元素CSS进行查看与编辑修改...这个很有用哦,可以让你看到元素具有的方法与属性,比查API手册要方便得多哦(要注意某些方法和属性在IE、FireFox等其他浏览器下面的支持情况哦)。...这里CSS文件有一好玩特性,你可以直接修改CSS文件,并且修改即时生效哦: Network标签 Network标签对于分析网站请求网络情况、查看某一请求请求头和响应头还有响应内容很有用,特别是在查看...Scripts标签 很明显,这个标签就是查看JS文件、调试JS代码,直接看下图说明: 还有你可以打开JavaScript控制台,做一些其他查看或者修改: 你甚至还可以为某一XHR请求或者某一事件设置断点

1.4K100
领券