-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
770 lines (449 loc) · 23.3 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
<!DOCTYPE html>
<html lang="zh-CN" data-default-color-scheme="auto">
<head>
<meta charset="UTF-8">
<link rel="apple-touch-icon" sizes="76x76" href="/img/favicon.png">
<link rel="icon" href="/img/favicon.png">
<meta name="viewport"
content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, shrink-to-fit=no">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="theme-color" content="#2f4154">
<meta name="description" content="">
<meta name="author" content="John Doe">
<meta name="keywords" content="">
<title>Hexo</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" />
<!-- 主题依赖的图标库,不要自行修改 -->
<link rel="stylesheet" href="//at.alicdn.com/t/font_1749284_ba1fz6golrf.css">
<link rel="stylesheet" href="//at.alicdn.com/t/font_1736178_kmeydafke9r.css">
<link rel="stylesheet" href="/css/main.css" />
<!-- 自定义样式保持在最底部 -->
<script id="fluid-configs">
var Fluid = window.Fluid || {};
var CONFIG = {"hostname":"dunktu.github.io","root":"/","version":"1.8.11","typing":{"enable":true,"typeSpeed":70,"cursorChar":"_","loop":false},"anchorjs":{"enable":true,"element":"h1,h2,h3,h4,h5,h6","placement":"right","visible":"hover","icon":""},"progressbar":{"enable":true,"height_px":3,"color":"#29d","options":{"showSpinner":false,"trickleSpeed":100}},"copy_btn":true,"image_zoom":{"enable":true,"img_url_replace":["",""]},"toc":{"enable":true,"headingSelector":"h1,h2,h3,h4,h5,h6","collapseDepth":0},"lazyload":{"enable":true,"loading_img":"/img/loading.gif","onlypost":false,"offset_factor":2},"web_analytics":{"enable":false,"baidu":null,"google":null,"gtag":null,"tencent":{"sid":null,"cid":null},"woyaola":null,"cnzz":null,"leancloud":{"app_id":null,"app_key":null,"server_url":null}},"search_path":"/local-search.xml"};
</script>
<script src="/js/utils.js" ></script>
<script src="/js/color-schema.js" ></script>
<meta name="generator" content="Hexo 5.4.0"></head>
<body>
<header style="height: 100vh;">
<nav id="navbar" class="navbar fixed-top navbar-expand-lg navbar-dark scrolling-navbar">
<div class="container">
<a class="navbar-brand"
href="/"> <strong>Dunktu</strong> </a>
<button id="navbar-toggler-btn" class="navbar-toggler" type="button" data-toggle="collapse"
data-target="#navbarSupportedContent"
aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<div class="animated-icon"><span></span><span></span><span></span></div>
</button>
<!-- Collapsible content -->
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav ml-auto text-center">
<li class="nav-item">
<a class="nav-link" href="/">
<i class="iconfont icon-home-fill"></i>
首页
</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/archives/">
<i class="iconfont icon-archive-fill"></i>
归档
</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/categories/">
<i class="iconfont icon-category-fill"></i>
分类
</a>
</li>
<li class="nav-item" id="search-btn">
<a class="nav-link" target="_self" data-toggle="modal" data-target="#modalSearch"> <i
class="iconfont icon-search"></i> </a>
</li>
<li class="nav-item" id="color-toggle-btn">
<a class="nav-link" target="_self"> <i
class="iconfont icon-dark" id="color-toggle-icon"></i> </a>
</li>
</ul>
</div>
</div>
</nav>
<div class="banner" id="banner" parallax=true
style="background: url('/img/bg/index.jpg') no-repeat center center;
background-size: cover;">
<div class="full-bg-img">
<div class="mask flex-center" style="background-color: rgba(0, 0, 0, 0.3)">
<div class="page-header text-center fade-in-up">
<span class="h2" id="subtitle" title="Dunktu的个人空间">
</span>
</div>
<div class="scroll-down-bar">
<i class="iconfont icon-arrowdown"></i>
</div>
</div>
</div>
</div>
</header>
<main>
<div class="container nopadding-x-md">
<div class="py-5" id="board"
style=margin-top:0>
<div class="container">
<div class="row">
<div class="col-12 col-md-10 m-auto">
<div class="row mx-auto index-card">
<article class="col-12 col-md-12 mx-auto index-info">
<h1 class="index-header">
<a href="/2021/12/25/%E7%BD%91%E9%A1%B5%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96%E7%9A%84%E6%96%B9%E6%B3%95%E6%A6%82%E8%BF%B0/" target="_self">
网页性能优化的方法概述
</a>
</h1>
<p class="index-excerpt">
<a href="/2021/12/25/%E7%BD%91%E9%A1%B5%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96%E7%9A%84%E6%96%B9%E6%B3%95%E6%A6%82%E8%BF%B0/" target="_self">
网页性能优化的9个方法合并操作
DOM的多个读写操作(或多个写操作),应该放在一起。不要两个读操作之间加入一个写操作。
不要一条条的改变样式,而要通过改变class,或者csstext属性,一次性的改变样式
缓存
如果某个样式是通过重排得到的,那么最好缓存结果。避免下一次用到的时候,浏览器又要重排
操作非真实DOM
尽量使用离线DOM,而不是真实的网面dom,来改变元素样式。(比如,操
</a>
</p>
<div class="index-btm post-metas">
<div class="post-meta mr-3">
<i class="iconfont icon-date"></i>
<time datetime="2021-12-25 11:29" pubdate>
2021-12-25
</time>
</div>
<div class="post-meta mr-3">
<i class="iconfont icon-category"></i>
<a href="/categories/%E5%9C%BA%E6%99%AF%E5%BA%94%E7%94%A8/">场景应用</a>
</div>
</div>
</article>
</div>
<div class="row mx-auto index-card">
<article class="col-12 col-md-12 mx-auto index-info">
<h1 class="index-header">
<a href="/2021/12/25/%E5%89%8D%E7%AB%AF%E5%BC%80%E5%8F%91%E4%B8%AD%E5%AF%BC%E8%87%B4%E9%A1%B5%E9%9D%A2%E5%8D%A1%E9%A1%BF%E7%9A%84%E5%9B%A0%E7%B4%A0/" target="_self">
前端开发中导致页面卡顿的因素
</a>
</h1>
<p class="index-excerpt">
<a href="/2021/12/25/%E5%89%8D%E7%AB%AF%E5%BC%80%E5%8F%91%E4%B8%AD%E5%AF%BC%E8%87%B4%E9%A1%B5%E9%9D%A2%E5%8D%A1%E9%A1%BF%E7%9A%84%E5%9B%A0%E7%B4%A0/" target="_self">
之前在做实习的一个项目的时候碰到了一个让我抓狂的BUG,需求是让我实现一个实时刷新获取消息列表的功能,但是后台返回的接口数据是成百上千的,页面卡的不得了,笔记本的风扇都呼呼的,所以这篇博客是为了总结一下导致页面卡顿的原因。
一.页面卡顿的原因大体上可以分为两种类型1.渲染不及时,页面掉帧
长时间占用js线程
页面回流和重绘较多
资源加载堵塞
我觉得这就是我上次碰到的哪个问题的原因,每一次请求
</a>
</p>
<div class="index-btm post-metas">
<div class="post-meta mr-3">
<i class="iconfont icon-date"></i>
<time datetime="2021-12-25 11:25" pubdate>
2021-12-25
</time>
</div>
<div class="post-meta mr-3">
<i class="iconfont icon-category"></i>
<a href="/categories/%E6%B5%8F%E8%A7%88%E5%99%A8/">浏览器</a>
</div>
</div>
</article>
</div>
<div class="row mx-auto index-card">
<article class="col-12 col-md-12 mx-auto index-info">
<h1 class="index-header">
<a href="/2021/12/25/%E9%A1%B5%E9%9D%A2%E9%87%8D%E7%BB%98%E4%B8%8E%E5%9B%9E%E6%B5%81/" target="_self">
页面重绘与回流
</a>
</h1>
<p class="index-excerpt">
<a href="/2021/12/25/%E9%A1%B5%E9%9D%A2%E9%87%8D%E7%BB%98%E4%B8%8E%E5%9B%9E%E6%B5%81/" target="_self">
一.什么是页面的重绘与回流浏览器在渲染一个页面的时候,从加载到完成,首先是构建DOM树,然后根据DOM节点的几何属性生成渲染树(不包括display:none,head节点但是会包括visibility:hidden节点),当渲染树构建完成,页面就根据DOM树开始布局了,渲染树也根据设置的样式对应的渲染这些节点。在这个过程中,回流与dom树和渲染树有关,重绘与渲染树有关。
比如我们删除一个dom节
</a>
</p>
<div class="index-btm post-metas">
<div class="post-meta mr-3">
<i class="iconfont icon-date"></i>
<time datetime="2021-12-25 11:07" pubdate>
2021-12-25
</time>
</div>
<div class="post-meta mr-3">
<i class="iconfont icon-category"></i>
<a href="/categories/%E6%B5%8F%E8%A7%88%E5%99%A8/">浏览器</a>
</div>
</div>
</article>
</div>
<div class="row mx-auto index-card">
<article class="col-12 col-md-12 mx-auto index-info">
<h1 class="index-header">
<a href="/2021/12/25/Css%E6%A6%82%E8%BF%B0/" target="_self">
Css概述
</a>
</h1>
<p class="index-excerpt">
<a href="/2021/12/25/Css%E6%A6%82%E8%BF%B0/" target="_self">
前言:我把CSS样式的一些基础知识总结了一下,作为自己的复习
1.内联与块内联元素:内联元素不会占用一整行,他只会占用他自己元素大小的空间块级元素:会独占一行的元素,无论他的内容有多少他都会独占一整行a元素可以包含除了他本身以外的任意元素,p元素不能包含其他任何块元素
2.CSS选择器
选择器
语法
元素选择器
标签名{}
id选择器
#id属性值{}
类选择器
.class属
</a>
</p>
<div class="index-btm post-metas">
<div class="post-meta mr-3">
<i class="iconfont icon-date"></i>
<time datetime="2021-12-25 10:53" pubdate>
2021-12-25
</time>
</div>
<div class="post-meta mr-3">
<i class="iconfont icon-category"></i>
<a href="/categories/Css/">Css</a>
</div>
</div>
</article>
</div>
<div class="row mx-auto index-card">
<article class="col-12 col-md-12 mx-auto index-info">
<h1 class="index-header">
<a href="/2021/12/25/cookie/" target="_self">
Cookie与Webstorage
</a>
</h1>
<p class="index-excerpt">
<a href="/2021/12/25/cookie/" target="_self">
基本概念cookie是往返于客户端与服务端的一小段存储信息,由响应头的Set-cookie设置,客户端浏览器在接收到响应之后就会在cookie中存储配置信息与数据,并且在向服务端发起请求的时候都会在请求头中带上这一段cookie传给服务端。
LocalStorage是WebStorage的一种,可以在浏览器中长期保存的一种本地存储类型,除非被清除,或者设定的过期时间到了,否则会一直保存在浏览器中
</a>
</p>
<div class="index-btm post-metas">
<div class="post-meta mr-3">
<i class="iconfont icon-date"></i>
<time datetime="2021-12-25 10:51" pubdate>
2021-12-25
</time>
</div>
</div>
</article>
</div>
<div class="row mx-auto index-card">
<article class="col-12 col-md-12 mx-auto index-info">
<h1 class="index-header">
<a href="/2021/12/25/Form-Data%E4%B8%8ERequest-Payload%E7%9A%84%E5%8C%BA%E5%88%AB/" target="_self">
Form Data与Request Payload的区别
</a>
</h1>
<p class="index-excerpt">
<a href="/2021/12/25/Form-Data%E4%B8%8ERequest-Payload%E7%9A%84%E5%8C%BA%E5%88%AB/" target="_self">
前端向后端发起get请求的时候,get会把传递的参数拼接在url的后面,所以get请求一般适用于数据量不大的情况之下,在数据量比较大的时候,我们就需要选择Post请求的方式了.
方式一:Form Data形式当POST请求的请求头里设置Content-Type: application/x-www-form-urlencoded(默认), 参数在请求体以标准的Form Data的形式提交,以&am
</a>
</p>
<div class="index-btm post-metas">
<div class="post-meta mr-3">
<i class="iconfont icon-date"></i>
<time datetime="2021-12-25 10:48" pubdate>
2021-12-25
</time>
</div>
<div class="post-meta mr-3">
<i class="iconfont icon-category"></i>
<a href="/categories/%E6%B5%8F%E8%A7%88%E5%99%A8/">浏览器</a>
</div>
</div>
</article>
</div>
<div class="row mx-auto index-card">
<article class="col-12 col-md-12 mx-auto index-info">
<h1 class="index-header">
<a href="/2021/12/25/%E5%BA%94%E7%94%A8%E9%89%B4%E6%9D%83/" target="_self">
应用鉴权
</a>
</h1>
<p class="index-excerpt">
<a href="/2021/12/25/%E5%BA%94%E7%94%A8%E9%89%B4%E6%9D%83/" target="_self">
应用鉴权就是当一个用户进入APP时,我们需要判断他所拥有的权利,根据权力来判断他所能进行的一个行为,最为常见的就是购物网站的登录以及购物支付等操作。
一.鉴权的需求背景Http的请求是无状态的,就是说在一个Http请求中的请求方和响应方都是无法维护状态,是一次性的,所以我们就不知道请求前后都发生了什么。所以我们需要标记的功能,而浏览器的sessionStorage,localStorage,全局
</a>
</p>
<div class="index-btm post-metas">
<div class="post-meta mr-3">
<i class="iconfont icon-date"></i>
<time datetime="2021-12-25 10:23" pubdate>
2021-12-25
</time>
</div>
<div class="post-meta mr-3">
<i class="iconfont icon-category"></i>
<a href="/categories/%E5%9C%BA%E6%99%AF%E5%BA%94%E7%94%A8/">场景应用</a>
</div>
</div>
</article>
</div>
<div class="row mx-auto index-card">
<article class="col-12 col-md-12 mx-auto index-info">
<h1 class="index-header">
<a href="/2021/12/25/JSONP%E8%AF%A6%E8%A7%A3/" target="_self">
JSONP详解
</a>
</h1>
<p class="index-excerpt">
<a href="/2021/12/25/JSONP%E8%AF%A6%E8%A7%A3/" target="_self">
jsonp是一个比较常见的跨域解决方法,这篇博客使用来详解它的用法以及实现原理
1.实现原理script标签的src属性并不被同源策略所约束,所以可以获取任何服务器上脚本并执行,这种性质致使我们可以通过script标签来实现jsonp跨域
2.实现模式假设A网站需要获取B网站中的某些数据程序B
123//调用callback函数,并以json数据形式作为阐述传递,完成回调callback(
</a>
</p>
<div class="index-btm post-metas">
<div class="post-meta mr-3">
<i class="iconfont icon-date"></i>
<time datetime="2021-12-25 10:21" pubdate>
2021-12-25
</time>
</div>
<div class="post-meta mr-3">
<i class="iconfont icon-category"></i>
<a href="/categories/%E6%B5%8F%E8%A7%88%E5%99%A8/">浏览器</a>
</div>
</div>
</article>
</div>
<div class="row mx-auto index-card">
<article class="col-12 col-md-12 mx-auto index-info">
<h1 class="index-header">
<a href="/2021/12/25/%E4%BB%8E%E8%BE%93%E5%85%A5URL%E5%88%B0%E9%A1%B5%E9%9D%A2%E5%B1%95%E7%A4%BA%E7%9A%84%E8%AF%A6%E7%BB%86%E8%BF%87%E7%A8%8B/" target="_self">
从输入URL到页面展示的详细过程
</a>
</h1>
<p class="index-excerpt">
<a href="/2021/12/25/%E4%BB%8E%E8%BE%93%E5%85%A5URL%E5%88%B0%E9%A1%B5%E9%9D%A2%E5%B1%95%E7%A4%BA%E7%9A%84%E8%AF%A6%E7%BB%86%E8%BF%87%E7%A8%8B/" target="_self">
1.输入网址url:统一资源定位符,用于定位互联网综上的资源url构成:协议类型://<主机名>:<端口>/<路径>/文件名?参数名#锚点
2.浏览器查找域名的IP地址(域名解析)浏览器缓存浏览器会检查缓存中有没有这个域名对应的解析过的IP地址,如果缓存中有,这个解析过程就将结束系统缓存浏览器会查看本地硬盘的 hosts 文件,看看其中有没有和这个域名对应的规
</a>
</p>
<div class="index-btm post-metas">
<div class="post-meta mr-3">
<i class="iconfont icon-date"></i>
<time datetime="2021-12-25 10:05" pubdate>
2021-12-25
</time>
</div>
<div class="post-meta mr-3">
<i class="iconfont icon-category"></i>
<a href="/categories/%E6%B5%8F%E8%A7%88%E5%99%A8/">浏览器</a>
</div>
</div>
</article>
</div>
<div class="row mx-auto index-card">
<article class="col-12 col-md-12 mx-auto index-info">
<h1 class="index-header">
<a href="/2021/12/25/%E8%B7%A8%E5%9F%9F%E9%97%AE%E9%A2%98/" target="_self">
跨域问题
</a>
</h1>
<p class="index-excerpt">
<a href="/2021/12/25/%E8%B7%A8%E5%9F%9F%E9%97%AE%E9%A2%98/" target="_self">
一.为什么会出现跨域问题出于浏览器的同源策略限制。同源策略(Sameoriginpolicy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。同源策略会阻止一个域的javascript脚本和另外一个域的内容进行交互。所谓同源(即指在同一个域)就是两个页面具有相同的协议(
</a>
</p>
<div class="index-btm post-metas">
<div class="post-meta mr-3">
<i class="iconfont icon-date"></i>
<time datetime="2021-12-25 09:57" pubdate>
2021-12-25
</time>
</div>
<div class="post-meta mr-3">
<i class="iconfont icon-category"></i>
<a href="/categories/%E6%B5%8F%E8%A7%88%E5%99%A8/">浏览器</a>
</div>
</div>
</article>
</div>
<nav aria-label="navigation">
<span class="pagination" id="pagination">
<span class="page-number current">1</span><a class="page-number" href="/page/2/#board">2</a><a class="page-number" href="/page/3/#board">3</a><a class="page-number" href="/page/4/#board">4</a><a class="extend next" rel="next" href="/page/2/#board"><i class="iconfont icon-arrowright"></i></a>
</span>
</nav>
</div>
</div>
</div>
</div>
</div>
<a id="scroll-top-button" href="#" role="button">
<i class="iconfont icon-arrowup" aria-hidden="true"></i>
</a>
<div class="modal fade" id="modalSearch" tabindex="-1" role="dialog" aria-labelledby="ModalLabel"
aria-hidden="true">
<div class="modal-dialog modal-dialog-scrollable modal-lg" role="document">
<div class="modal-content">
<div class="modal-header text-center">
<h4 class="modal-title w-100 font-weight-bold">搜索</h4>
<button type="button" id="local-search-close" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body mx-3">
<div class="md-form mb-5">
<input type="text" id="local-search-input" class="form-control validate">
<label data-error="x" data-success="v"
for="local-search-input">关键词</label>
</div>
<div class="list-group" id="local-search-result"></div>
</div>
</div>
</div>
</div>
</main>
<footer class="text-center mt-5 py-3">
<div class="footer-content">
<a href="#" rel="nofollow noopener"><span>Dunktu</span></a> <i class="iconfont icon-love"></i> <a href="#" rel="nofollow noopener"><span>涂博闻</span></a>
</div>
</footer>
<!-- SCRIPTS -->
<script src="https://cdn.jsdelivr.net/npm/[email protected]/nprogress.min.js" ></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/nprogress.min.css" />
<script>
NProgress.configure({"showSpinner":false,"trickleSpeed":100})
NProgress.start()
window.addEventListener('load', function() {
NProgress.done();
})
</script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/jquery.min.js" ></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.min.js" ></script>
<script src="/js/events.js" ></script>
<script src="/js/plugins.js" ></script>
<!-- Plugins -->
<script src="/js/img-lazyload.js" ></script>
<script defer src="https://cdn.jsdelivr.net/npm/[email protected]/dist/clipboard.min.js" ></script>
<script src="/js/local-search.js" ></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/lib/typed.min.js" ></script>
<script>
(function (window, document) {
var typing = Fluid.plugins.typing;
var title = document.getElementById('subtitle').title;
typing(title)
})(window, document);
</script>
<!-- 主题的启动项 保持在最底部 -->
<script src="/js/boot.js" ></script>
</body>
</html>