-
Notifications
You must be signed in to change notification settings - Fork 1
/
index.html
8443 lines (8410 loc) · 580 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
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>阮一峰每周分享</title>
<link rel="stylesheet" href="./layui-v2.4.5/layui/css/layui.css">
<style>
body {
background: #a3a2a12d;
}
.list {
display: flex;
flex-direction: row;
flex-wrap: wrap;
}
.list a {
width: 15%;
}
@media (max-width: 768px) {
.list a {
width: 33%;
}
}
@media (max-width: 427px) {
.list a {
width: 50%;
}
.footer span {
display: block;
}
}
.footer span {
font-size: 14px;
}
</style>
</head>
<body>
<div class="layui-container">
<fieldset class="layui-elem-field layui-field-title" style="margin-top: 20px;">
<legend>
<h3>阮一峰每周分享摘录(更新到 2019 年 3 月 15 号 47 期)</h3>
</legend>
</fieldset>
<div class="layui-col-xs12">
<div class="layui-collapse" lay-accordion="">
<div class="layui-colla-item">
<h2 class="layui-colla-title">电子书/文章/教程</h2>
<div class="layui-colla-content layui-show">
<div class="layui-collapse">
<div class="layui-colla-item">
<h2 class="layui-colla-title">前端</h2>
<div class="layui-colla-content">
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://github.com/kujian/frontendDaily" target="_blank">前端开发技术日报</a></h2>
<div class="layui-colla-content">
<p>每日分享互联网上的前端技术、前端资讯。(@<a href="https://github.com/ruanyf/weekly/issues/286" target="_blank">kujian</a> 投稿)</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title">
<p><a href="https://journal.plausible.io/you-probably-dont-need-a-single-page-app" target="_blank">你可能不需要单页应用(SPA)</a>(英文)</p>
</h2>
<div class="layui-colla-content">
<p>作者认为,网站做成单页应用的这种趋势,有滥用的嫌疑。他提出,大多数情况应该使用传统网页,只有那些强调实时响应、富交互、状态分享的场景,才应该使用单页应用。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title">
<p><a href="https://www.chromestory.com/2019/02/chrome-scroll-to-text/" target="_blank">Chrome
浏览器支持跳转到指定文字</a>(英文)</p>
</h2>
<div class="layui-colla-content">
<p>Chrome 将支持跳转到指定文字,而不需要锚点。做法是 URL 里面设置 #targetText=hello%20world ,然后就会跳转到网页的第一个<code>hello
world</code>的地方。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://github.com/tyroprogrammer/learn-react-app" target="_blank">React
教程</a></h2>
<div class="layui-colla-content">
<p>一个入门教程,需要下载到本地运行。通过一个个练习和演示,帮助读者完成开发实际的 React 应用。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://news.ycombinator.com/item?id=19127407" target="_blank">Chrome
的隐藏插件</a></h2>
<div class="layui-colla-content">
<p>Chrome 浏览器启动的时候,会加载一些系统插件,不会在插件页显示。这里介绍如何查看这些隐藏插件。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://github.com/toddmotto/public-apis" target="_blank">public-apis</a></h2>
<div class="layui-colla-content">
<p>这个仓库收集免费的 API,已经有100多个了。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="http://frontendtools.com/" target="_blank">前端开发精选工具库</a></h2>
<div class="layui-colla-content">
<img class="lazyload" data-src="https://www.wangbase.com/blogimg/asset/201903/bg2019030125.jpg"
alt="" title="">
<p>收集前端开发各方面的工具。(@<a href="https://github.com/ruanyf/weekly/issues/177" target="_blank">xiaohesong</a>
投稿)</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title">
<p><a href="http://leebriggs.co.uk/blog/2019/02/07/why-are-we-templating-yaml.html" target="_blank">Jsonnet
比 Yaml 更适合配置文件</a>(英文)</p>
</h2>
<div class="layui-colla-content">
<p>作者谈了 PHP 过去三年的改进,以及为什么更适合架设他们的网站。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title">
<p><a href="https://blog.jonlu.ca/posts/deobfuscating-amex-scammer" target="_blank">一段混淆过的 JS
脚本剖析</a>(英文) </p>
</h2>
<div class="layui-colla-content">
<p>作者收到一封诈骗 Email,比较特别的是,它不是引诱用户点击链接,而是提供了一个网页附件,让用户打开,里面是一段混淆过的 JS 脚本。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title">
<p><a href="https://frontarm.com/james-k-nelson/will-finally-run-quiz/" target="_blank">Finally
代码块的解释</a>(英文)</p>
</h2>
<div class="layui-colla-content">
<p>随着 JS 引入 async/await ,开发者不可避免地会更多使用 try/catch/finally ,本文解释 finally 代码块的一些容易混淆的点。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://haydenjames.io/best-cdn-providers/" target="_blank">CDN
提供商2019介绍</a></h2>
<div class="layui-colla-content">
<p>该文介绍了全球25家 CDN 服务提供商,并提供简单的测评。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title">
<p><a href="http://2ality.com/2019/01/future-js.html" target="_blank">未来的 JavaScript 语言</a>(英文)</p>
</h2>
<div class="layui-colla-content">
<p>本文介绍 TC39 委员会正在考虑的、加入 JavaScript 语言的一些新功能。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title">
<p><a href="https://43081j.com/2019/01/first-look-at-deno" target="_blank">Deno 运行时介绍</a>(英文)</p>
</h2>
<div class="layui-colla-content">
<p>Deno 是一个 JS/TypeScript 运行时,用来取代 Node。它的最大特点就是不支持 CommonJS,只支持 ES6 模块。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://github.com/wubaiqing/zaobao" target="_blank">前端早报</a></h2>
<div class="layui-colla-content">
<p>一个个人开发者的前端开发的分享日报。(@<a href="https://github.com/wubaiqing/zaobao" target="_blank">wubaiqing</a>
投稿)</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://medium.com/@ann.green/loading-indicators-e9d9ac9680b"
target="_blank">页面加载动画</a></h2>
<div class="layui-colla-content">
<p>这篇文章收集了近20个加载页面的优秀动画效果。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title">
<p><a href="https://juejin.im/post/5bdfaed0e51d4505086fa4cd" target="_blank">开发不需要"编译"的 WebApp</a>(中文)</p>
</h2>
<div class="layui-colla-content">
<p>作者介绍如何使用 Web Components 技术开发一个网页音乐播放器。(@<a href="https://github.com/ruanyf/weekly/issues/186"
target="_blank">mantou132</a><em>_ _</em>投稿)</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title">
<p><a href="https://medium.com/@antonmedv/discover-how-to-use-fx-effectively-668845d2a4ea" target="_blank">JSON
操作命令行工具 fx</a>(英文)</p>
</h2>
<div class="layui-colla-content">
<p>fx 可以方便地在命令行操作 JSON 数据,本文是 fx 用法的教程。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://uigradients.com" target="_blank">UI gradients</a></h2>
<div class="layui-colla-content">
<p>一个收集渐变色样式的网站。(@<a href="https://github.com/ruanyf/weekly/issues/124" target="_blank">valenzhou</a>
投稿)</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title">
<p><a href="https://scrimba.com/g/glearnreact" target="_blank">React 视频课程</a>(英文)</p>
</h2>
<div class="layui-colla-content">
<p>React 的短视频课程,几分钟一集,共有45集。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title">
<p><a href="https://www.chenng.cn/post/Node-command-line-tool-production.html" target="_blank">如何写一个
Node 命令行验证码图像识别工具</a>(中文)</p>
</h2>
<div class="layui-colla-content">
<p>Node 命令行工具的开发实例,从 0 开始写。(@<a href="https://github.com/ruanyf/weekly/issues/143" target="_blank">ringcrl</a><em>_
_</em>投稿)</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title">
<p><a href="https://codeburst.io/learn-how-to-debug-javascript-with-chrome-devtools-9514c58479db"
target="_blank">Chrome 开发者工具如何使用断点?</a>(英文)</p>
</h2>
<div class="layui-colla-content">
<p>本文通过实例讲解,如何设置事件监听断点和 watch 表达式。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://www.tutorialdocs.com/article/html-opener-blank.html"
target="_blank">target = "_blank" 的危险性</a>(英文)</h2>
<div class="layui-colla-content">
<p>HTML 网页的<code><a></code>元素打开的子网页,可以用<code>window.opener.location.replace()</code>方法替换掉父窗口的网址,这会带来风险。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="http://beza1e1.tuxen.de/model_view_controller.html" target="_blank">MVC
框架的误解</a>(英文)</h2>
<div class="layui-colla-content">
<img class="lazyload" data-src="https://www.wangbase.com/blogimg/asset/201812/bg2018122113.jpg"
alt="" title="">
<p>作者提出,现在那些 MVC 应用其实改叫 MVA 更合适,也就是把 Controller(控制器)改成 Adapter(适配器)。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://medium.com/asos-techblog/flutter-vs-react-native-for-ios-android-app-development-c41b4e038db9"
target="_blank">Flutter 框架印象</a>(英文)</h2>
<div class="layui-colla-content">
<p>作者较深入地评论了目前 Flutter 框架开发手机应用的优缺点,总体上还是鼓励大家使用它。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://blog.hackages.io/https-blog-hackages-io-evanyoubhack2017-cc5559806157"
target="_blank">Vue.js 框架的作者尤雨溪专访</a>(英文)</h2>
<div class="layui-colla-content">
<p>介绍了 Vue.js 的发展历程,以及背后的想法。(@<a href="https://github.com/ruanyf/weekly/issues/92" target="_blank">M1seRy</a><em>_
_</em>投稿)</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://blog.cloudflare.com/fast-google-fonts-with-cloudflare-workers/"
target="_blank">使用 Cloudflare Worker 加速谷歌字体加载</a>(英文)</h2>
<div class="layui-colla-content">
<p>网页加载谷歌字体的最大问题是加载速度较慢,会影响网页体验。Cloudflare 提供 Worker 方案,可以改写用户的字体请求,从而加速字体加载。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://blog.georgovassilis.com/2016/04/16/advanced-web-security-topics/"
target="_blank">高级 Web 安全主题</a>(英文)</h2>
<div class="layui-colla-content">
<p>本文收集各种网页入侵的技术,已经收集了十多种。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://practicaltypography.com/" target="_blank">实用排版指南</a>(英文)</h2>
<div class="layui-colla-content">
<p>免费电子书,介绍网页排版的知识。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://github.com/jashkenas/coffeescript/wiki/List-of-languages-that-compile-to-JS"
target="_blank">可以编译成 JS 的语言列表</a></h2>
<div class="layui-colla-content">
<p>许多语言可以编译成 JavaScript,从而在浏览器运行,这张列表收集所有已经有编译工具的语言。提醒,这是一张很长的列表。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://medium.com/warsawjs/state-of-package-json-dependencies-de99828b6c3f"
target="_blank">package.json 大数据分析</a>(英文)</h2>
<div class="layui-colla-content">
<p>有人分析了 GitHub 上面56万个项目的 package.json 的依赖项,得到了一些结论,比如过去一年被依赖最多的30个模块。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://2018.stateofjs.com/" target="_blank">2018年
JavaScript 开发者调查</a>(英文)</h2>
<div class="layui-colla-content">
<p>2018年 JS 开发者的调查报告,主要是各种框架、工具的使用情况。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://ecom.software/after-two-years-with-typescript-was-it-worth-it/"
target="_blank">使用 TypeScript 两年后</a>(英文)</h2>
<div class="layui-colla-content">
<p>作者回顾了使用 TypeScript 两年的经历,总体上还是推荐的,也提出了一些值得注意的问题。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="http://uxmovement.com/forms/why-you-should-use-a-text-area-for-address-form-fields/"
target="_blank">地址表单不应该分成两行</a>(英文)</h2>
<div class="layui-colla-content">
<img class="lazyload" data-src="https://www.wangbase.com/blogimg/asset/201812/bg2018121417.jpg"
alt="" title="">
<p>本文提出地址输入不应该有两个输入框,而是应该只是一个 textarea。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://smalldata.tech/blog/2018/11/01/copying-objects-in-javascript"
target="_blank">JavaScript 如何复制对象</a>(英文)</h2>
<div class="layui-colla-content">
<p>JavaScript 的对象复制默认是浅拷贝,本文介绍如何深拷贝。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://itnext.io/the-absolute-easiest-way-to-debug-node-js-with-vscode-2e02ef5b1bad"
target="_blank">调试 Node 应用的最简单方法:VS Code</a>(英文)</h2>
<div class="layui-colla-content">
<p>本文介绍如何使用 VS Code 编辑器调试 Node 代码。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://www.robinwieruch.de/the-road-to-graphql-book/"
target="_blank">GraphQL 之路</a></h2>
<div class="layui-colla-content">
<img class="lazyload" data-src="https://www.wangbase.com/blogimg/asset/201811/bg2018113014.jpg"
alt="" title="">
<p>开源电子书,介绍如何使用 React.js 和 Node.js 开发 GraphQL 应用。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://cruip.com/" target="_blank">登录页设计</a></h2>
<div class="layui-colla-content">
<img class="lazyload" data-src="https://www.wangbase.com/blogimg/asset/201811/bg2018113013.jpg"
alt="" title="">
<p>登录页的各种页面设计,可以免费下载模板。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://www.howtographql.com/" target="_blank">GraphQL 全栈课程</a>(英文)</h2>
<div class="layui-colla-content">
<p>Prisma 公司推出的免费课程,分成基础知识、前端、后端三个部分。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://medium.com/@cwervo/parc3l-combining-three-js-rust-and-webassembly-c1e643ef7681"
target="_blank">网页加载Three.js、Rust 和 WebAssembly</a>(英文)</h2>
<div class="layui-colla-content">
<p>本文通过一个简单的实例,介绍网页如何加载用 Rust 写的 WebAssembly 模块。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://refactoringui.com/previews/building-your-color-palette/"
target="_blank">如何定制一个调色板</a>(英文)</h2>
<div class="layui-colla-content">
<img class="lazyload" data-src="https://www.wangbase.com/blogimg/asset/201811/bg2018113009.jpg"
alt="" title="">
<p>本文介绍如何为自己的应用定制一个调色板,指定各种颜色。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://tutorialedge.net/golang/writing-frontend-web-framework-webassembly-go/"
target="_blank">使用 Go 编写前端 Web 框架</a>(英文)</h2>
<div class="layui-colla-content">
<p>本文使用 Go 语言编写一个非常简单的前端单页应用,然后将它编译成 WebAssembly。所有功能,包括前端组件和前端路由,都是用 Go 写的。看上去,网页编程即将不再是 JS
的专利了。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="http://huziketang.mangojuice.top/books/react/" target="_blank">React.js
小书</a></h2>
<div class="layui-colla-content">
<p>国人编写的 React 入门教程。(@<a href="https://github.com/ruanyf/weekly/issues/49" target="_blank">LeeChar</a>
投稿)</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://tinnedfruit.com/articles/create-your-own-dysfunctional-single-page-app.html"
target="_blank">你可能不需要单页应用</a>(英文)</h2>
<div class="layui-colla-content">
<p>现在的前端开发大量使用单页应用 SPA,使得前端的复杂性急剧增加。这篇文章提出,SPA 可能被过度使用了,大部分情况下,你可能不需要单页应用。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://github.com/leonardomso/33-js-concepts" target="_blank">33
个 JS 程序员需要知道的概念</a></h2>
<div class="layui-colla-content">
<p>按照主题,收集 JS 学习资源的仓库。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://www.google.com/intl/en/ipv6/statistics.html" target="_blank">IPv6
采用率</a></h2>
<div class="layui-colla-content">
<img class="lazyload" data-src="https://www.wangbase.com/blogimg/asset/201811/bg2018110915.jpg"
alt="" title="">
<p>谷歌有一个公开网页,展示使用 IPv6 访问谷歌的比例。最近,这个比率来到历史最高的25%。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://3perf.com/talks/web-perf-101/" target="_blank">Web
Performance 101</a>(英文)</h2>
<div class="layui-colla-content">
<p>网页性能的基础知识,针对初学者,内容比较全。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://arp242.net/weblog/yaml_probably_not_so_great_after_all.html"
target="_blank">YAML 格式的问题</a>(英文)</h2>
<div class="layui-colla-content">
<p>YAML 格式虽然比 JSON 格式易读易写,但也有很多问题。这种格式其实很复杂,并不是配置文件的理想格式。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://logrocket.com/blog/infinite-scroll/" target="_blank">停止无限滚动</a>(英文)</h2>
<div class="layui-colla-content">
<p>本文提出网页的无限滚动并不是一个好的设计,应该限制使用或者停止使用。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://github.com/dropbox/zxcvbn" target="_blank">zxcvbn</a></h2>
<div class="layui-colla-content">
<p>评估密码强度的 JS 库,强度越强,密码越不容易破解。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://medium.com/@pshrmn/a-simple-react-router-v4-tutorial-7f23ff27adf"
target="_blank">React Router v4 教程</a>(英文)</h2>
<div class="layui-colla-content">
<p>前端框架 React 的路由库教程,提供在线代码运行示例,例子简洁能说明问题。(@<a href="https://github.com/ruanyf/weekly/issues/25"
target="_blank">Anderson-Liu</a> 投稿)</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://gethead.info/" target="_blank">HTML 网页的 head 元素 指南</a>(英文)</h2>
<div class="layui-colla-content">
<p>网页的 <code><head></code> 元素可以放置很多东西,本文列出了其中一些主要的内容,可以当作参考手册。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://medium.freecodecamp.org/a-beginners-guide-to-graphql-60e43b0a41f5"
target="_blank">GraphQL 入门教程</a>(英文)</h2>
<div class="layui-colla-content">
<p>本文介绍 GraphQL 的概念和优点,演示如何用 Express.js 搭建一个 GraphQL 后端。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://www.igorkromin.net/index.php/2018/09/06/hijacking-html-canvas-and-png-images-to-store-arbitrary-text-data/"
target="_blank">文本数据如何储存在 Canvas 图片?</a>(英文)</h2>
<div class="layui-colla-content">
<p>网页从服务器拿到数据,需要保存下来,但是不想存在 Cookie 和 LocalStorage,怎么办?这篇文章的方法就是动态生成一张 Canvas 的 PNG 图片,将数据存在里面。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://hackernoon.com/how-to-build-iphone-calculator-using-flutter-fe934ce78d7e"
target="_blank">如何使用 Flutter 制作一个 iPhone 计算器?</a>(英文)</h2>
<div class="layui-colla-content">
<img class="lazyload" data-src="https://www.wangbase.com/blogimg/asset/201811/bg2018110229.jpg"
alt="" title="">
<p>Flutter 开发的一个简单教程。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://web.archive.org/web/20180916071340/https://www.mnot.net/blog/2018/07/31/read_rfc"
target="_blank">如何阅读 RFC?</a>(英文)</h2>
<div class="layui-colla-content">
<p>RFC 是很多互联网协议的标准,但是它是文本文件,不太容易阅读。本文介绍 RFC 文档的相关知识。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://blog.sourcerer.io/building-a-website-with-c-db942c801aee"
target="_blank">如何用 C++ 写网页?</a>(英文)</h2>
<div class="layui-colla-content">
<p>本文教你如何用 C++ 写一个二进制程序,每当收到通过 CGI 网关发来的调用请求时,自动返回一个网页。其他后端语言也可以用来写网页,原理是一样的。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://honest.engineering/posts/why-use-graphql-good-and-bad-reasons"
target="_blank">为什么要使用 GraphQL ?</a>(英文)</h2>
<div class="layui-colla-content">
<p>GraphQL 是客户端请求服务器数据的一种新技术,本文分析的它的优点和局限。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://github.com/mjavascript/mastering-modular-javascript"
target="_blank">精通 JavaScript 模块</a></h2>
<div class="layui-colla-content">
<img class="lazyload" data-src="https://www.wangbase.com/blogimg/asset/201810/bg2018101914.jpg"
alt="" title="">
<p>开源电子书,介绍如何编写模块化的 JavaScript 代码。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://nolanlawson.com/2018/09/25/accurately-measuring-layout-on-the-web/"
target="_blank">网页性能的准确测量</a>(英文)</h2>
<div class="layui-colla-content">
<p>本文讨论如何使用<code>window.requestAnimationFrame()</code> 测量脚本操作的准确耗时。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://itnext.io/dockerizing-modern-web-apps-cd9667eebf44"
target="_blank">如何将 Web 应用做成 Docker?</a>(英文)</h2>
<div class="layui-colla-content">
<p>本文通过一个很简单的单页应用,演示如何将 Web 应用放到 Docker 里面,然后通过 Docker 运行。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://medium.freecodecamp.org/psst-heres-why-reasonreact-is-the-best-way-to-write-react-5088d434d035"
target="_blank">为什么 Reason 语言合适写 React 应用?</a>(英文)</h2>
<div class="layui-colla-content">
<p>简单的歌词通常有重复的内容。这篇文章使用压缩算法,比较现在的歌词与过去的歌词,看看哪个压缩得更小,内容更简单。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://github.com/you-dont-need/You-Dont-Need-Momentjs"
target="_blank">你不需要Momentjs</a>(英文)</h2>
<div class="layui-colla-content">
<p>本文列举如何用 date-fns 或者原生方法,取代 moment.js。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://hackernoon.com/goodbye-redux-26e6a27b3a0b" target="_blank">为什么
GraphQL 可以取代 Redux?</a>(英文)</h2>
<div class="layui-colla-content">
<p>本文解释了 Redux 想要解决的问题,而 GraphQL 可以解决同样的问题。但是,该文没有给出细节。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://blog.acolyer.org/2018/09/05/who-left-open-the-cookie-jar-a-comprehensive-evaluation-of-third-party-cookie-policies/"
target="_blank">跨站点请求的七种情况</a>(英文)</h2>
<div class="layui-colla-content">
<p>网页可以向第三方站点发出请求,这是 CSRF 攻击的主要原因。这篇文章总结了可能发出第三方请求的七种情况。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://developers.google.com/web/updates/2018/04/present-web-pages-to-secondary-attached-displays"
target="_blank">Presentation API</a>(英文)</h2>
<div class="layui-colla-content">
<img class="lazyload" data-src="https://www.wangbase.com/blogimg/asset/201809/bg2018092812.jpg"
alt="" title="">
<p>Chrome 66 支持 Presentation API,这个 API 允许浏览器定制投射到第二块屏幕的内容,使用脚本进行控制。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://dev.to/stefanjudis/three-input-element-properties-that-i-discovered-while-reading-mdn-30fg"
target="_blank"> <code><input></code> 元素的三个属性</a>(英文)</h2>
<div class="layui-colla-content">
<p>HTML 网页的 <code><input></code> 元素有几十个属性,本文介绍其中三个开发者比较不熟悉的属性。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://www.webdesignmuseum.org/" target="_blank">网页设计博物馆</a></h2>
<div class="layui-colla-content">
<img class="lazyload" data-src="https://www.wangbase.com/blogimg/asset/201809/bg2018092116.jpg"
alt="" title="">
<p>该博物馆展出了900多个精心挑选和分类的网站,展示了1995年至2005年间的网页设计趋势。上图是苹果公司2001年的主页。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://opensource.com/article/18/8/publish-wordpress-static-gitlab-pages-site"
target="_blank">如何将 WordPress 站点发布成 Gitlab 静态页面站点?</a>(英文)</h2>
<div class="layui-colla-content">
<p>WordPress 是常用的博客软件,虽然方便易用,但是容易产生安全问题。作者提供了一个脚本,可以将 WordPress 网站的 HTML 页面,部署到 Gitlab Pages
服务,做成一个静态网站。 </p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://sausheong.github.io/posts/cross-platform-games-with-go/"
target="_blank">使用 Webview 开发跨平台桌面应用</a>(英文)</h2>
<div class="layui-colla-content">
<img class="lazyload" data-src="https://www.wangbase.com/blogimg/asset/201809/bg2018091414.jpg"
alt="" title="">
<p>跨平台桌面应用一般用 Electron 开发,打包体积很大。对于纯静态应用,其实有另一种轻量级选择。</p>
<p>操作系统都有自己的 Webview,Mac 是 webview,Windows 是 MSHTML,Linux 是 gtk-webkit2。这篇文章教你怎么用
Webview,开发一个跨平台的桌面打飞机游戏。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://github.com/nswbmw/node-in-debugging" target="_blank">《Node.js
调试指南》</a></h2>
<div class="layui-colla-content">
<img class="lazyload" data-src="https://www.wangbase.com/blogimg/asset/201808/bg2018083120.jpg"
alt="" title="">
<p>《Node.js 调试指南》一书的开源版。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://www.tutorialdocs.com/article/axios-learn.html"
target="_blank">axios 内部设计分析</a>(英文)</h2>
<div class="layui-colla-content">
<p>axios 是一个非常流行的 JavaScript 语言的 HTTP 请求库,本文分析它的内部设计。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="http://blog-en.tilda.cc/articles-website-design-mistakes"
target="_blank">网页设计的常见错误</a>(英文)</h2>
<div class="layui-colla-content">
<img class="lazyload" data-src="https://www.wangbase.com/blogimg/asset/201808/bg2018083111.jpg"
alt="" title="">
<p>本文使用图片对比,列出网页外观设计的15个注意点。上图左侧是改造前的网页,右侧是改造后。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://css-tricks.com/delivering-wordpress-in-7kb/" target="_blank">如何制作一个节能的网站?</a>(英文)</h2>
<div class="layui-colla-content">
<img class="lazyload" data-src="https://www.wangbase.com/blogimg/asset/201808/bg2018081713.jpg"
alt="" title="">
<p>臃肿肥胖的网页会消耗更多能源,释放更多二氧化碳。为了保护地球,我们应该制作简单节能的网页,作者演示了如何制作一个只有 7KB 的 Wordpress 网站。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://intoli.com/blog/power-assert/" target="_blank">断言库
Power Assert 介绍</a>(英文)</h2>
<div class="layui-colla-content">
<p>为什么 Power Assert 是更好的断言库?</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://hackernoon.com/im-harvesting-credit-card-numbers-and-passwords-from-your-site-here-s-how-9a8cb347c5b5"
target="_blank">如何通过 npm 窃取信用卡密码?</a>(英文)</h2>
<div class="layui-colla-content">
<p>本文讲述了作者通过 npm 发布恶意代码的种种手段,非常值得一读。其中有一个技巧,就是package.js 与 package.min.js 的代码不同,恶意代码只放在后者。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://leanpub.com/build-react-app-with-atdd">Acceptance
Test Driven Development with React</a></h2>
<div class="layui-colla-content">
<img class="lazyload" data-src="https://www.wangbase.com/blogimg/asset/201808/bg2018080323.jpg"
alt="" title="">
<p>中国开发者写的英语专著,介绍前端测试。书放在 Leanpub,付不付费、付多少钱都是自愿的。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://webdesign.tutsplus.com/tutorials/how-to-create-a-loader-icon-with-svg-animations--cms-31542"
target="_blank">SVG 动画入门:以加载转子为例</a></h2>
<div class="layui-colla-content">
<p>本文手把手教你如何写一个最简单的 SVG 动画。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://freshman.tech/image-optimisation/" target="_blank">如何使用
Node 优化图片?</a>(英文)</h2>
<div class="layui-colla-content">
<p>本文教你使用 JS 的 imagemin 模块,压缩图片的大小。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://wanago.io/2018/07/16/webpack-4-course-part-one-entry-output-and-es6-modules/">Webpack
4 入门教程</a>(英文)</h2>
<div class="layui-colla-content">
<p>Webpack 是 JS 代码的打包器,现在前端开发的主流工具。Webpack 4 是它的最新版本。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://webdesign.tutsplus.com/tutorials/how-to-use-svg-patterns-as-backgrounds--cms-31507">SVG
背景</a>(英文)</h2>
<div class="layui-colla-content">
<img class="lazyload" data-src="https://www.wangbase.com/blogimg/asset/201808/bg2018080316.jpg"
alt="" title="">
<p>这篇文章教你如何手写一个 SVG 文件,作为网页的背景图案。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://apsdehal.in/blog/chrome-developer-tools-to-master"
target="_blank">Chrome 浏览器开发者工具教程</a>(英文)</h2>
<div class="layui-colla-content">
<img class="lazyload" data-src="https://www.wangbase.com/blogimg/asset/201807/bg2018072711.jpg"
alt="" title="">
<p>介绍 Chrome 开发者工具各个部分的用法。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://adamisntdead.com/lets-write-a-module-bundler/"
target="_blank">如何写一个模块打包器</a>(英文)</h2>
<div class="layui-colla-content">
<img class="lazyload" data-src="https://www.wangbase.com/blogimg/asset/201807/bg2018072710.jpg"
alt="" title="">
<p>Webpack 是现在最流行的模块打包器,可以将脚本依赖打包成一个文件。这到底是怎么实现的?如果自己写一个打包器,应该怎么写?</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://blogs.systweak.com/2017/06/how-to-enable-offline-browsing-in-firefox-and-chrome/"
target="_blank">Chrome 的缓存浏览模式</a>(英文)</h2>
<div class="layui-colla-content">
<img class="lazyload" data-src="https://www.wangbase.com/blogimg/asset/201807/bg2018072010.jpg"
alt="" title="">
<p>Chrome 可以启用"show saved copy" 按钮。如果网站下线,而本地又有以前访问时的缓存,就能看到缓存的版本。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://yuque.com/xytech/flutter/sh4fbm" target="_blank">深入理解
flutter 的编译原理与优化</a>(中文)</h2>
<div class="layui-colla-content">
<p>闲鱼是国内最早使用 Flutter 的 App 之一,这个系列的文章是他们对 Flutter 的使用总结。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://yuanchuan.name/2018/05/06/unicode-patterns.html"
target="_blank">Unicode 字符与 CSS 背景</a>(英文)</h2>
<div class="layui-colla-content">
<img class="lazyload" data-src="https://www.wangbase.com/blogimg/asset/201807/bg2018071312.jpg"
alt="" title="">
<p>Unicode 字符用作 CSS 背景,可以产生一些非常独特的背景。此文还有<a href="https://css-tricks.com/more-unicode-patterns/"
target="_blank">续篇</a>。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://letsencrypt.org/docs/certificates-for-localhost/"
target="_blank">如何生成 localhost 的证书?</a>(英文)</h2>
<div class="layui-colla-content">
<p>本地开发时,我们常常使用 localhost 访问本地服务,怎样才能生成证书,让 localhost 提供 https 服务呢?</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://www.smashingmagazine.com/2018/06/google-flutter-mobile-development/"
target="_blank">Flutter 入门介绍</a>(英文)</h2>
<div class="layui-colla-content">
<img class="lazyload" data-src="https://www.wangbase.com/blogimg/asset/201807/bg2018071310.jpg"
alt="" title="">
<p>现在的跨平台App开发工具分成两类:(1)容器包了Web
View,App实际是一个本地网站;(2)原生控件的跨平台抽象。Flutter走了不一样的路:自己开发了一套原生控件,每个平台实现一遍,然后把渲染引擎(这套控件)打包在每个应用里面,因此性能没有问题,平台差异也很小。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://medium.com/@seenickcode/what-it-was-like-to-write-a-full-blown-flutter-app-330d8202825b"
target="_blank">Flutter 试用感受</a>(英文)</h2>
<div class="layui-colla-content">
<p>Flutter 是谷歌推出的跨平台App开发工具。只要写一次代码,就能同时编译出安卓和iOS两个平台的App。这篇是一个 iOS 开发者的试用报告,他说他对 Flutter 感到非常满意。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title">纯 CSS 效果展示</h2>
<div class="layui-colla-content">
<img class="lazyload" data-src="https://www.wangbase.com/blogimg/asset/201806/bg2018062915.jpg"
alt="" title="">
<a href="https://codepen.io/zschaffter/pen/GdWQeV/" target="_blank">转动的电风扇</a>
<a href="https://codepen.io/jkantner/pen/gKRKKb" target="_blank">动态火焰效果</a>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://developer.apple.com/videos/play/wwdc2018/239/"
target="_blank">网页如何适配 WatchOS5</a></h2>
<div class="layui-colla-content">
<img class="lazyload" data-src="https://www.wangbase.com/blogimg/asset/201806/bg2018062914.jpg"
alt="" title="">
<p>苹果手表的最新系统 WatchOS5,可以在手表上浏览网页。WWDC 2018 放出一段8分钟视频,介绍网页如何适配苹果手表,还算挺简单的。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://docs.browserless.io/blog/2018/06/04/puppeteer-best-practices.html"
target="_blank">Puppeteer 的一些使用经验</a>(英文)</h2>
<div class="layui-colla-content">
<p>Puppeteer 是谷歌推出的 Chrome 无头浏览器,是目前的浏览器自动化首选工具。本文介绍了作者的使用经验。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://itnext.io/javascript-e2e-ui-testing-or-how-to-brake-up-with-selenium-and-move-on-f991c142079a"
target="_blank">Testcafe 教程</a>(英文)</h2>
<div class="layui-colla-content">
<img class="lazyload" data-src="https://www.wangbase.com/blogimg/asset/201806/bg2018062212.jpg"
alt="" title="">
<p>Testcafe 是一个 UI 测试框架,可以在各大浏览器进行 UI 测试。相比 Puppeteer,它提供各种专门针对测试的封装好的方法。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://v8project.blogspot.com/2018/06/concurrent-marking.html"
target="_blank">V8 改进垃圾清理机制</a>(英文)</h2>
<div class="layui-colla-content">
<img class="lazyload" data-src="https://www.wangbase.com/blogimg/asset/201806/bg2018062211.jpg"
alt="" title="">
<p>V8 引擎宣布"垃圾清理机制"的重大改进。我们知道,对于大型程序,垃圾清理很影响性能,因为程序必须暂停,让引擎识别哪些内存不再需要。V8
现在允许内存识别不暂停程序,而是并发进行,使得程序停顿时间减少70%左右。引擎如何识别不再需要的对象,希望了解具体实现的朋友,可以看看上面这篇文章。 </p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://github.com/wizardforcel/eloquent-js-3e-zh" target="_blank">Eloquent
JavaScript 3rd edition 中文版</a></h2>
<div class="layui-colla-content">
<p>一本开源的 JavaScript 语言的入门教材。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://github.com/mui-org/material-ui/releases/tag/v1.0.0"
target="_blank">Material-UI</a></h2>
<div class="layui-colla-content">
<img class="lazyload" data-src="https://www.wangbase.com/blogimg/asset/201805/bg2018053009.jpg"
alt="" title="">
<p>大家知道,谷歌的材质化组件(Material Design)是 Angular 专用的。社区维护的 React 移植版Material-UI,今天发布 1.0
版,已经完全可用了。以后,React 项目照样可以有官方安卓 UI 的那种材质化效果。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="http://lea.verou.me/2018/05/responsive-tables-revisited/"
target="_blank">响应式表格的两种解法</a></h2>
<div class="layui-colla-content">
<img class="lazyload" data-src="https://www.wangbase.com/blogimg/asset/201805/bg2018053008.jpg"
alt="" title="">
<p>手机怎么显示表格?常见的方法是将表格转为键值对。Lea Verou 给出了两种纯 CSS 的解法,不需要任何多余的 HTML 标签。</p>
<p>一种是使用 text-shadow 属性复制表头,另一个使用 element 方法复制表头。但是,这两种方法都有局限,前者是单元格里不能有换行,后者是只有 Firefox 支持。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://www.fastly.com/blog/headers-we-dont-want" target="_blank">不必要的
HTTP 头信息</a>(英文)</h2>
<div class="layui-colla-content">
<p>本文统计了30个最常见的 HTTP 头信息,逐个讨论哪些是必要的,哪些是没必要的。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://github.com/huytd/kanban-app" target="_blank">Elm +
Rust 开发桌面应用</a></h2>
<div class="layui-colla-content">
<p>目前,使用 Web 技术开发桌面应用,主要通过 Electron。它的缺点是,有时你只是想要在桌面上展示一个网页,不需要跟本地文件系统交互,但是不得不把整个 Chromium 浏览器和
V8 引擎包含在这个应用里面,导致不管逻辑是否复杂,任何一个 Electron 应用都至少有几十MB的大小。<br>
这个项目展示了另一种开发桌面应用的可能。它的原理是,任何操作系统都有自己的 WebView,也就是说可以在应用程序里面调用 WebView 展示网页。那么可以使用 Rust 语言打包
WebView,而 JS 脚本部分交给 Elm 语言生成。由于 WebView 是系统提供的,所以打包出来非常小,一般只有几百KB,资源占用也很少。</p>
<img class="lazyload" data-src="https://www.wangbase.com/blogimg/asset/201805/bg2018051812.jpg"
alt="" title="">
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://github.com/krasimir/react-in-patterns" target="_blank">《React
in patterns》</a></h2>
<div class="layui-colla-content">
<p>React 如何使用各种编程模式?</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="http://2ality.com/2018/04/async-iter-nodejs.html" target="_blank">Node
10 的异步遍历器</a></h2>
<div class="layui-colla-content">
<p>上个月底发布的<a href="https://nodesource.com/blog/what-you-can-expect-from-node-js-10" target="_blank">Node
10 </a> 支持<a href="http://es6.ruanyifeng.com/#docs/async#%E5%BC%82%E6%AD%A5%E9%81%8D%E5%8E%86%E5%99%A8">异步遍历器</a>,对
Stream 操作有重大影响。这篇文章介绍了如何用这个新语法读取文件内容,写法变得很自然。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://yuque.com/airing/canvas" target="_blank">Canvas:
Draw on the web</a></h2>
<div class="layui-colla-content">
<p>国产的 HTML5 Canvas 教程。从零基础开始,到Canvas
API,再到基本动画与高级动画的实现,还会介绍视音频的处理、移动应用,最后如果有时间会扩展说一说3D、多人应用、游戏制作等。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://evilmartians.com/chronicles/optimizing-react-virtual-dom-explained"
target="_blank">Optimizing React: Virtual DOM explained</a></h2>
<div class="layui-colla-content">
<p>React 的虚拟 DOM 机制的详细解释, JSX 代码如何变成虚拟 DOM 的数据结构。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="http://wasmweekly.news/" target="_blank">WebAssembly 周刊</a></h2>
<div class="layui-colla-content">
<p>每周给你发送一封邮件,介绍本周值得关注的 WebAssembly 消息。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://keithjgrant.com/posts/2018/meet-the-new-dialog-element/"
target="_blank">Meet the New Dialog Element</a></h2>
<div class="layui-colla-content">
<p>HTML 5.2 新增了 dialog 元素,这个元素将来一定会广泛使用,因为它提供了浏览器原生 Modal 窗口。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://github.com/reactjs/react-basic" target="_blank">React
- Basic Theoretical Concepts</a></h2>
<div class="layui-colla-content">
<p>React 官方关于 React 原始设计思想的解释。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://github.com/wojtekmaj/react-lifecycle-methods-diagram"
target="_blank">React v16.3 生命周期的示意图</a></h2>
<div class="layui-colla-content">
<p></p>
</div>
</div>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title">后端/数据库/分布式/架构</h2>
<div class="layui-colla-content">
<div class="layui-colla-item">
<h2 class="layui-colla-title">
<p><a href="http://www.zeroequalsfalse.press/2019/02/13/what-is-lambda/" target="_blank">Amazon
Lambda 的通俗解释</a>(英文)</p>
</h2>
<div class="layui-colla-content">
<p>本文使用最简单的语言解释 Lambda 服务,如果你不知道它是什么,可以看看。当然不涉及细节。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title">
<p>3<a href="https://www.jeffgeerling.com/blog/2019/its-not-me-google-its-you-ga-fathom" target="_blank">从
Google Analytics 迁移到 Fathom</a>(英文)</p>
</h2>
<div class="layui-colla-content">
<img class="lazyload" data-src="https://www.wangbase.com/blogimg/asset/201903/bg2019030815.jpg"
alt="" title="">
<p>如何自己架设开源的 <a href="https://usefathom.com/" target="_blank">Fathom</a> 服务,统计网站访问情况。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title">
<p><a href="https://dannyvankooten.com/from-go-back-to-php-again/" target="_blank">为什么我们从 Go 转向
PHP?</a>(英文)</p>
</h2>
<div class="layui-colla-content">
<p>作者谈了 PHP 过去三年的改进,以及为什么更适合架设他们的网站。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title">
<p><a href="https://danielmiessler.com/blog/dns-servers-you-should-have-memorized/" target="_blank">你应该记住的
DNS 地址</a>(英文)</p>
</h2>
<div class="layui-colla-content">
<p>作者介绍了几个常用的 DNS 服务器地址,简单谈了它们之间的差异。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://guacamole.apache.org/" target="_blank">Apache
Guacamole</a></h2>
<div class="layui-colla-content">
<p>浏览器里面的远程桌面连接器,可以在网页上登录远程桌面,支持 VNC、RDP、SSH。(@<a href="https://github.com/ruanyf/weekly/issues/240"
target="_blank">barrer</a> 投稿)</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title"><a href="https://codecurmudgeon.com/wp/sql-injection-hall-of-shame/"
target="_blank">SQLi Hall of of Shame</a></h2>
<div class="layui-colla-content">
<p>该网站收集 SQL 注入的各种真实案例。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title">
<p><a href="https://adguard.com/en/blog/adguard-dns-announcement/" target="_blank">AdGuard 公司的
DNS</a></p>
</h2>
<div class="layui-colla-content">
<p>AdGuard 宣布提供免费的 DNS 服务:<code>76.103.130.130</code> 或 <code>176.103.130.131</code> ,还支持 DNS
over HTTPS。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title">
<p><a href="https://24ways.org/2018/fast-autocomplete-search-for-your-website/" target="_blank">SQLite
用作搜索服务</a>(英文)</p>
</h2>
<div class="layui-colla-content">
<p>SQLite 有很强的读取性能,作者提出它可以用作小型网站的搜索数据库。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title">
<p><a href="https://www.techcoil.com/blog/how-i-use-my-raspberry-pis-to-help-me-work-on-with-my-side-projects/"
target="_blank">如何使用树莓派架设各种网络服务</a>(英文)</p>
</h2>
<div class="layui-colla-content">
<p>作者介绍使用一台树莓派,架设个人使用的反向代理服务器、Git 服务、看板服务的过程。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title">
<p><a href="https://grpc.io/blog/state-of-grpc-web" target="_blank">浏览器的 gRPC 协议支持</a>(英文)</p>
</h2>
<div class="layui-colla-content">
<p>gRPC 是谷歌提出的一套远程服务调用的解决方案,只能用于服务器之间。本文介绍了 gRPC-Web 这个项目,旨在让浏览器也可以使用 gRPC。</p>
</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title">
<p><a href="https://blog.filippo.io/mkcert-valid-https-certificates-for-localhost/" target="_blank">mkcert
制作 localhost 证书</a>(英文)</p>
</h2>
<div class="layui-colla-content">
<p>mkcert 是一个签发本地证书的工具,用于开发环境,最大特色是可以签发 localhost 的证书。</p>
</div>
</div>
<div class="layui-colla-item">