前端-业务场景8
14. 1000 万 个ip,如何做到O(1) 查找
参考答案:
用bitmap来做这个问题。首先对数据进行预处理。定义1000 万bit位个int.在32位计算机下,一个int是32位,1000 万位的话,就需要1000 万除以32个int整数。大概有很多个。第一个int标记0-31这个数字范围的ip存不存在,比如说0000001这个ip,我就把第一个int的第1位置1。第二个int能够标记32-63这个范围的ip存不存在,以此类推。把这1000 万个ip号预处理一遍。然后计算你给我的这个ip,它是在哪个int里面,然后找到相应的数据位,看是1还是0,就能在O(1)的时间里找到
15. 如何实现 pwa
参考答案:
实现:
准备工作:建议安装 [http-server]和 [ngrok]以便调试和查看。
准备一个 HTML 文件, 以及相应的 CSS 等:
<head> <title>Minimal PWA</title> <meta name="viewport" content="width=device-width, user-scalable=no" /> <link rel="stylesheet" type="text/css" href="main.css"> </head> <body> <h3>Revision 1</h3> <div class="main-text">Minimal PWA, open Console for more~~~</div> </body>
添加 manifest.json 文件
为了让 PWA 应用被添加到主屏幕, 使用 manifest.json 定义应用的名称, 图标等等信息。
{
"name": "Minimal app to try PWA",
"short_name": "Minimal PWA",
"display": "standalone",
"start_url": "/",
"theme_color": "#8888ff",
"background_color": "#aaaaff",
"icons": [
{
"src": "e.png",
"sizes": "256x256",
"type": "image/png"
}
]
}
然后在 HTML 文件当中引入配置:
<link rel="manifest" href="manifest.json" />
添加 Service Worker
Service Worker 在网页已经关闭的情况下还可以运行, 用来实现页面的缓存和离线, 后台通知等等功能。sw.js 文件需要在 HTML 当中引入:
<script>
if (navigator.serviceWorker != null) {
navigator.serviceWorker.register('sw.js')
.then(function(registration) {
console.log('Registered events at scope: ', registration.scope);
});
}
</script>
后面我们会往 sw.js 文件当中添加逻辑代码。在 Service Worker 当中会用到一些全局变量:
- self: 表示 Service Worker 作用域, 也是全局变
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
前端岗位面试真题宝典 文章被收录于专栏
本面试宝典均来自校招面试题目大数据进行的整理
