<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Front-End on I&#39;m K.T</title>
    <link>https://kytrun.com/front-end/</link>
    <description>Recent content in Front-End on I&#39;m K.T</description>
    <image>
      <title>I&#39;m K.T</title>
      <url>https://kytrun.com/favicon.ico</url>
      <link>https://kytrun.com/favicon.ico</link>
    </image>
    <generator>Hugo -- 0.147.7</generator>
    <language>zh</language>
    <lastBuildDate>Sat, 19 Sep 2020 22:02:07 +0000</lastBuildDate>
    <atom:link href="https://kytrun.com/front-end/atom.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>使用 preload 资源预加载</title>
      <link>https://kytrun.com/use-preload/</link>
      <pubDate>Sat, 19 Sep 2020 22:02:07 +0000</pubDate>
      <guid>https://kytrun.com/use-preload/</guid>
      <description>&lt;p&gt;如果有前后关联的异步 XHR 请求通常会在回调函数中按顺序先后加载，但这样会比较耗时，所以我们有 &lt;code&gt;Promise.all()&lt;/code&gt; 来并行请求，最后再处理。&lt;/p&gt;
&lt;p&gt;在编写小型前端项目尽可能考虑兼容且不依赖第三方库时，可以使用在 html 的 &lt;code&gt;&amp;lt;head&amp;gt;&lt;/code&gt; 中添加 &lt;code&gt;&amp;lt;link&amp;gt;&lt;/code&gt; 通过 &lt;code&gt;rel=&amp;quot;preload&amp;quot;&lt;/code&gt; 进行内容预加载。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;&amp;lt;link&amp;gt;&lt;/code&gt; 元素的 rel 属性的属性值 preload 能够让你在你的 HTML 页面中 &lt;code&gt;&amp;lt;head&amp;gt;&lt;/code&gt;元素内部书写一些声明式的资源获取请求，可以指明哪些资源是在页面加载完成后即刻需要的。对于这种即刻需要的资源，你可能希望在页面加载的生命周期的早期阶段就开始获取，在浏览器的主渲染机制介入前就进行预加载。这一机制使得资源可以更早的得到加载并可用，且更不易阻塞页面的初步渲染，进而提升性能。
&amp;ndash;引用自 &lt;a href=&#34;https://developer.mozilla.org/zh-CN/docs/Web/HTML/Preloading_content&#34;&gt;MDN&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;简单来说，就是添加这种特定的 head 后我们就可以在文档加载后就提前请求一部分内容，留待之后的网络请求直接使用，不需要额外的处理。&lt;/p&gt;
&lt;p&gt;&lt;em&gt;串行请求：&lt;/em&gt;
&lt;img alt=&#34;xhr_serial&#34; loading=&#34;lazy&#34; src=&#34;https://gcore.jsdelivr.net/gh/kytrun/img/src/xhr_serial.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;并行请求：&lt;/em&gt;
&lt;img alt=&#34;xhr_parallel&#34; loading=&#34;lazy&#34; src=&#34;https://gcore.jsdelivr.net/gh/kytrun/img/src/xhr_parallel.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;为了动态的添加 &amp;ldquo;preload&amp;rdquo;，还可以通过 js 代码实时写入到 DOM 中，以下是我封装的函数。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-javascript&#34; data-lang=&#34;javascript&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;kd&#34;&gt;function&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;preload&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;url&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   &lt;span class=&#34;kd&#34;&gt;var&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;preloadLink&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;document&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;createElement&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;link&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   &lt;span class=&#34;nx&#34;&gt;preloadLink&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;href&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;url&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   &lt;span class=&#34;nx&#34;&gt;preloadLink&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;rel&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;preload&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   &lt;span class=&#34;nx&#34;&gt;preloadLink&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;as&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;fetch&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   &lt;span class=&#34;nx&#34;&gt;preloadLink&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;crossOrigin&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;anonymous&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   &lt;span class=&#34;nb&#34;&gt;document&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;head&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;appendChild&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;preloadLink&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>接口调试神器 Network&#43;</title>
      <link>https://kytrun.com/network-plus/</link>
      <pubDate>Tue, 02 Jun 2020 21:55:18 +0000</pubDate>
      <guid>https://kytrun.com/network-plus/</guid>
      <description>&lt;p&gt;浏览器自带的开发者工具 Network 只能查看网络请求但不能修改，有时候只需要修改少量的参数也需要打开第三方工具如 Postman 将 URL、method、Request Body 等完整地填写一遍。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/ClearStudio/network-plus&#34;&gt;Network+&lt;/a&gt; 是一款可以捕获、修改并重新请求的浏览器扩展，用以提升接口调试的效率。&lt;/p&gt;
&lt;p&gt;支持 Chrome、Firefox 和新版本的 Edge。&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;Network+&#34; loading=&#34;lazy&#34; src=&#34;https://gcore.jsdelivr.net/gh/ClearStudio/network-plus/images/screen_recording.gif&#34;&gt;&lt;/p&gt;
&lt;p&gt;项目地址：&lt;a href=&#34;https://github.com/ClearStudio/network-plus&#34;&gt;https://github.com/ClearStudio/network-plus&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>使用 Iconfont 图标</title>
      <link>https://kytrun.com/use-iconfont/</link>
      <pubDate>Wed, 01 Apr 2020 20:08:22 +0000</pubDate>
      <guid>https://kytrun.com/use-iconfont/</guid>
      <description>&lt;p&gt;在做前端项目、个人网站……时难免需要图标，Iconfont 是我认为目前最好的方案：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;图标来源于设计师、网友，图标多、全；&lt;/li&gt;
&lt;li&gt;强大的自定义功能；&lt;/li&gt;
&lt;li&gt;按需配用，不需要加载冗余资源；&lt;/li&gt;
&lt;li&gt;可以上传自己的图标，统一管理；&lt;/li&gt;
&lt;li&gt;阿里的免费 CDN；&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;可以称得上一个好用且免费的图标工厂了。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;使用步骤&lt;/strong&gt;：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;访问 &lt;a href=&#34;https://www.iconfont.cn&#34;&gt;https://www.iconfont.cn&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;使用关键字搜索图标
&lt;img alt=&#34;image&#34; loading=&#34;lazy&#34; src=&#34;https://gcore.jsdelivr.net/gh/kytrun/img/src/iconfont-search.png&#34;&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;挑选喜欢的图标，悬浮在图标上添加入库
&lt;img alt=&#34;image&#34; loading=&#34;lazy&#34; src=&#34;https://gcore.jsdelivr.net/gh/kytrun/img/src/iconfont-add.png&#34;&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;挑选完毕后，添加到一个项目
&lt;img alt=&#34;image&#34; loading=&#34;lazy&#34; src=&#34;https://gcore.jsdelivr.net/gh/kytrun/img/src/iconfont-project.png&#34;&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;可以编辑颜色、尺寸、名称等
&lt;img alt=&#34;image&#34; loading=&#34;lazy&#34; src=&#34;https://gcore.jsdelivr.net/gh/kytrun/img/src/iconfont-edit.png&#34;&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;可以自定义项目中的 font-class
&lt;img alt=&#34;image&#34; loading=&#34;lazy&#34; src=&#34;https://gcore.jsdelivr.net/gh/kytrun/img/src/iconfont-project-menu.png&#34;&gt;
&lt;img alt=&#34;image&#34; loading=&#34;lazy&#34; src=&#34;https://gcore.jsdelivr.net/gh/kytrun/img/src/iconfont-project-edit.png&#34;&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;生成并复制代码
&lt;img alt=&#34;image&#34; loading=&#34;lazy&#34; src=&#34;https://gcore.jsdelivr.net/gh/kytrun/img/src/iconfont-code.png&#34;&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;em&gt;注意：添加或编辑了项目内容后需要重新生成代码&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;参考官方使用教程 &lt;a href=&#34;https://www.iconfont.cn/help/detail?helptype=code&#34;&gt;https://www.iconfont.cn/help/detail?helptype=code&lt;/a&gt;，推荐 font-class 方式引用；&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt=&#34;image&#34; loading=&#34;lazy&#34; src=&#34;https://gcore.jsdelivr.net/gh/kytrun/img/src/iconfont-help-font-class.png&#34;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;推荐直接使用 CDN，当然，如果不放心可以下载离线版备份；&lt;/li&gt;
&lt;li&gt;更多用法请自行挖掘 ；&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
  </channel>
</rss>
