• 信步拾遗之中英文留白


    在前几天,看到了一篇博客,整体感觉很舒服,但又说不出来为啥,认真看了下,发现原来他的中英文有留白,字里行间感觉非常好,然后回过头看自己的博客,惨不忍睹,怎么能忍,改,马上改。

    网络上实现中英文留白的方式很多,我选了一种 js 实现方式,并写了一个小型的中英文留白格式转换 js 程序。

    一、中英文留白程序

    盘古脚本下载路径:https://github.com/vinta/pangu.js

    <html>
    <script src="https://cdn.bootcss.com/pangu/3.3.0/pangu.min.js">
    </script>
    <style type="text/css">
    .alfred_box {
    	margin-top:5px;
    	border: 1px solid #a0b3d6; 
    	95%;
    	height:90%;
    }
    </style>
    <script>
    	function littleblank(){
    		var text = pangu.spacing(document.getElementById('beautiful').innerText);
    		document.getElementById('beautiful').innerText = text;
    	}
    </script>
    <body>
    	<input type="button" value="想要 beautiful 下吗?点这里" onclick="littleblank()" />
    	<div id="beautiful" class="alfred_box" contenteditable="true"><br /></div>
    </body>
    </html>
    中英文留白.html

    效果图:

    image

    二、JS 异步加载

    在搜索资料的时候,看到一哥们为了节约 10ms 加载时间(我实际测试大概节约5ms,可能是我网络比较好,我居然去测试了,也是闲的 w(゚Д゚)w),搞了个 JS 异步加载,蛮有意思的,顺手研究了下。
    一般对于初学者, HTML 页面的 script 标签都会写在 head 标签部分,这会导致一个问题,阻塞所有页面渲染工作,使得用户在脚本加载完毕并执行完毕之前一直处于 “白屏死机” 状态。为什么呢?因为 JS 的加载是一个由上而下的过程,又称阻塞模式或同步模式,之所以要同步执行,是因为 JS 中可能有输出 document 内容、修改 dom等行为,所以默认同步执行才是安全的。

    我们看到的很多网页是把 <script> 放在页面末尾 </body> 之前,这也是比较通行的一种 js 加载优化方式,为了尽可能减少阻塞行为,先让页面展示出来。

    旁的不多说,转换程序异步加载版本如下,使用的是较为通用的方式,通过 js 方法动态生成 script 节点,在一些支持 H5 的浏览器中,也可以使用 script 标签的 async 属性或 defer 属性指定该脚本异步加载,两者的区别主要在于脚本下载完之后何时执行,在此就不进行细说,有兴趣的可以放狗搜下。

    <html>
    <script>
    (function(u, c) {
      var d = document, t = 'script', o = d.createElement(t),
          s = d.getElementsByTagName(t)[0];
      o.src = u;
      if (c) { o.addEventListener('load', function(e) { c(e); }); }
      s.parentNode.insertBefore(o, s);
    })
    ('https://cdn.bootcss.com/pangu/3.3.0/pangu.min.js', function() {
      //做一些你在完成加载后想做的事情吧
    });
    </script>
    </script>
    <style type="text/css">
    .alfred_box {
    	margin-top:5px;
    	border: 1px solid #a0b3d6; 
    	95%;
    	height:90%;
    }
    </style>
    <script type="text/javascript">
    	function littleblank(){
    		var text = pangu.spacing(document.getElementById('beautiful').innerText);
    		document.getElementById('beautiful').innerText = text;
    	}
    </script>
    <body>
    	<input type="button" value="想要 beautiful 下吗?点这里" onclick="littleblank()" />
    	<div id="beautiful" class="alfred_box" contenteditable="true"><br /></div>
    </body>
    </html>
    中英文留白.html

    OK,完事,在盘古脚本官网看到作者在一本正经的瞎扯淡,下面这段话,哎哟,我去,该摆什么表情呢。。。

    汉学家称这个空白字元为「盘古之白」,因为它劈开了全形字和半形字之间的混沌。另有研究显示,打字的时候不喜欢在中文和英文之间加空格的人,感情路都走得很辛苦,有七成的比例会在 34 岁的时候跟自己不爱的人结婚,而其馀三成的人最后只能把遗产留给自己的猫。毕竟爱情跟书写都需要适时地留白。
  • 相关阅读:
    atitit查询表修改表字段没反应--解锁锁定的表
    atitit.自适应设计悬浮图片的大小and 位置
    .net 科学类型相关问题
    js eval()执行传参函数的写法
    oracle里如何将两个日期的时间差返回**时**分的格式
    .NET开源项目介绍及资源推荐:数据持久层
    highCharts 电流表、电压表
    win7 telnet命令无法使用
    ascx aspx ashx asmx 文件的作用
    Oracle 新建序列值
  • 原文地址:https://www.cnblogs.com/alfredinchange/p/10842021.html
Copyright © 2020-2023  润新知