日语 - Day 5
浊音 が ぎ ぐ げ ご ガ ギ グ ゲ ゴ ざ じ ず ぜ ぞ ザ ジ ズ ゼ ゾ だ ぢ づ で ど ダ ヂ ヅ デ ド ば び ぶ べ ぼ バ ビ ブ ベ ボ ず 与 づ 读音相同 じ 与 ぢ 读音相同 半浊音 ぱ ぴ ぷ ぺ ぽ パ ピ プ ペ ポ 拗音 长音 促音 拗长音
浊音 が ぎ ぐ げ ご ガ ギ グ ゲ ゴ ざ じ ず ぜ ぞ ザ ジ ズ ゼ ゾ だ ぢ づ で ど ダ ヂ ヅ デ ド ば び ぶ べ ぼ バ ビ ブ ベ ボ ず 与 づ 读音相同 じ 与 ぢ 读音相同 半浊音 ぱ ぴ ぷ ぺ ぽ パ ピ プ ペ ポ 拗音 长音 促音 拗长音
DOM 属性(Properties 写在对象内的) DOM 节点是常规的 JavaScript 对象。 例如,在 document.body 中创建一个新的属性: document.body.myData = { name: 'Caesar', title: 'Imperator' }; document.body.sayTagName = function() { alert(this.tagName); }; Element.prototype.sayHi = function() { alert(`Hello, I'm ${this.tagName}`); }; alert(document.body.myData.title); // Imperator document.documentElement.sayHi(); // Hello, I'm HTML document.body.sayHi(); // Hello, I'm BODY document.body.sayTagName(); // BODY(这个方法中的 "this" 的值是 document.body) 所以,DOM 属性和方法的行为就像常规的 Javascript 对象一样,并且大小写敏感。 HTML 特性(Attributes 写在 HTML 上的) 在 HTML 中,标签可能拥有特性(attributes)。当浏览器解析 HTML 文本,并根据标签创建 DOM 对象时,浏览器会辨别 标准的 特性并以此创建 DOM 属性。 所以,当一个元素有 id 或其他 标准的 特性,那么就会生成对应的 DOM 属性。但是非 标准的 特性则不会。 ...
前言 什么是 Prometheus、Node Exporter 和 Grafana?它们是用于监控和可视化系统性能的工具。 Prometheus 是一个开源的监控系统和时间序列数据库 Node Exporter 是 Prometheus 的一个组件,用于收集 Linux 系统的硬件和操作系统指标 Grafana 是一个开源的数据可视化平台,可以与 Prometheus 集成来展示数据 关于数据流动,Prometheus 通过 HTTP 拉取 Node Exporter 的指标数据,然后将这些数据存储在时间序列数据库中。Grafana 则通过查询 Prometheus 的 API 来获取这些数据,并以可视化的方式展示出来。 所以 Prometheus 需要能访问 Node Exporter 的 HTTP 接口,而 Grafana 则需要能访问 Prometheus 的 HTTP 接口。 在实践中,我们将把 Prometheus 和 Grafana 部署在同一台服务器上。Node Exporter 将安装在所需要监控的服务器上。 为什么不用 docker ?个人觉得为了 docker 那点便利性不值得,并且 docker 至今还不原生支持 nftables,直接在宿主机上部署更少问题。 Native support for nftables 架构示意图 环境 Debian 12 安装 Prometheus 使用我的脚本 如果你不想手动安装,可以使用我写的脚本来自动化安装 Prometheus。 ...
首先我们要确定可以从什么方向对体验进行优化 影响网页体验有很多方面,不过一般方向无非下面这三大类 网络 JS执行 页面渲染 关于网络优化 关于网络优化,我们要先了解发起网络请求的流程 查询对应的域名 加入请求队列 发起连接 发送请求 等待响应 下载内容 其中 4, 5, 6 步都是受客户端到服务器之间的网络影响,前端几乎没什么能优化的所以着重说下剩下的几个方面如何优化 DNS (影响小) 首先什么是 DNS 可以参考 Wikipedia 域名系统 这部分优化说白了就是让浏览器在拿到地址时就直接把对应的 IP 解析出来,不要在真正发起请求的时候再解析。 <link rel="dns-prefetch" href="https://fonts.googleapis.com/" /> 参考 MDN 文档 请求队列 浏览器对于单个域名只能同时建立4~6个TCP连接(不同浏览器实现有差异)。 如果在 http/1.1 的情况下比如说我现在有六个大体积的图片正在加载,剩下一个影响布局的 JS 请求只能等待前面的任意一个请求完成才能发起,很明显这会增加布局完成的时间降低用户体验,但是在 HTTP/2 中则不存在这个问题,优化方面有下面这几个 使用 HTTP/2 这个需要服务端启用 HTTP/2 协议,浏览器会自动与服务端协商。如果服务端支持 HTTP/2,浏览器会优先使用这个协议。否则会回退到 HTTP/1.1。 域名分片 把原来耗时的请求例如图片、字体等放到另一个域名中。这是最常见的做法 例如谷歌就把字体等图片放到不同的域名中 将耗时的请求延后 确定哪些请求比较重要,先加载会影响页面布局的资源。 例如下面的 JS 标签 defer 属性可以让浏览器在 HTML 解析完成后再执行脚本,这样就不会阻塞页面渲染。但是注意,这个属性对模块脚本无效。 <script src="https://example.com/script.js" defer></script> 对于图片和 iframe 可以使用 loading="lazy" 属性来延迟加载,只有当进入视口时才会加载。 <img src="image.jpg" loading="lazy" alt="Lazy loaded image"> 发起连接 思路同样是预连接 ...
や行假名 や ゆ よ ヤ ユ ヨ ら行假名 ら り る れ ろ ラ リ ル レ ロ わ行假名 わ を ん ワ ヲ ン 拨音 ん ン
this 的值是运行时计算出来的 let user = { name: "John" }; let admin = { name: "Admin" }; function sayHi() { alert( this.name ); } // 在两个对象中使用相同的函数 user.f = sayHi; admin.f = sayHi; // 这两个调用有不同的 this 值 // 函数内部的 "this" 是“点符号前面”的那个对象 user.f(); // John(this == user) admin.f(); // Admin(this == admin) admin['f'](); // Admin(使用点符号或方括号语法来访问这个方法,都没有关系。) 没有对象的情况下 在严格模式下,函数中的 this 是 undefined。 在非严格模式下,this 是全局对象(浏览器中是 window 对象)。 function showThis() { console.log(this); } showThis(); // 在非严格模式下,this指向全局对象 箭头函数没有自己的this let user = { firstName: "Ilya", sayHi() { let arrow = () => console.log(this.firstName); arrow(); } }; user.sayHi(); // Ilya 调用函数时指定this function say(phrase) { alert(this.name + ': ' + phrase); } let user = { name: "John" }; let admin = { name: "Admin" }; say.call(user, "Hello"); // John: Hello say.call(admin, "Hello"); // Admin: Hello say.apply(user, ["Hello"]); // John: Hello say.apply(admin, ["Hello"]); // Admin: Hello say.bind(user, "Hello")(); // John: Hello say.bind(admin, "Hello")(); // Admin: Hello 例子 在对象字面量中使用 “this” function makeUser() { return { name: "John", ref: this }; } let user = makeUser(); alert( user.ref.name ); // 结果是什么? 因为在调用 makeUser 函数时,不是通过对象调用的,所以 this 是 undefined。因此,user.ref 是 undefined,访问 user.ref.name 会导致错误。 ...
な行假名 な に ぬ ね の ナ ニ ヌ ネ ノ は行假名 は ひ ふ へ ほ ハ ヒ フ ヘ ホ ま行假名 ま み む め も マ ミ ム メ モ
问题描述 监听 JavaScript 事件时,对应处理函数只有一个console.log(),但事件并没有触发。 document.getElementById("myButton").addEventListener("click", (e) => { console.log("Button clicked"); }); 问题原因 Vite 中配置了去除 console.log 的功能,导致在生产环境中无法输出日志。 解决方法 删除对应的 Vite 配置即可
か行假名 か き く け こ カ キ ク ケ コ さ行假名 さ し す せ そ サ シ ス セ ソ た行假名 た ち つ て と タ チ ツ テ ト
浊音 か、た、ぱ行假名位于单词词中或词末时可以念不送气音 不送气音 ≠ 浊音 音调 一个假名一个音节 规律总结 前面标的序号就代表在第几个音节音调下降,都是在第一个音节开始上升后保持不变 0 调是例外,在第一个音节后就保持在高音调