cdnを介してjqueryを導入することもありますが、必然的に間違いを犯します。どうすればよいですか?cdnとローカルインポートを一緒に使用して判断できます。cdnインポートが成功した場合、ローカルjqueryはインポートされません。CDNインポートが失敗した場合は、ローカルjqueryがインポートされます。
対応するjqueryをアドレスにインポートして変更するだけで、残りは変更する必要はありません。
言うまでもありませんが、コードを見てください。
最初の方法
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<!-- CDN引入 -->
<script src="https://www.jq22.com/jquery/jquery-3.3.1.j"></script>
</head>
<body>
</body>
<!-- 当CDN引入失败的时候指向这段代码 -->
<script type="text/javascript">
if (typeof jQuery == 'undefined') {
document.write(unescape("%3Cscript src='../js/jQuery_js.js' type='text/javascript'%3E%3C/script%3E"));
}
</script>
</html>
document.writeメソッドでURLエンコードを直接使用し、「<」を「%3C」としてエンコードしてから、unescape()メソッドを使用して文字列を復元します。
unescape()メソッドを使用して文字列を変換し直すと、出力が通常のスクリプト引用コードであることがわかります。
ここで、「通常の文字を使用しないのに、文字エンコードを使用するのはなぜですか?」という質問があります。実際、これには理由があります。つまり、コードはXML、XHTML、またはHTMLで正常に実行できます。 CDATA(ラベル)にコードを含める必要があります。
2番目の方法
<!-- CDN引入 -->
<script src="https://www.jq22.com/jquery/jquery-3.3.1.j"></script>
<!-- 本地引入 -->
<script>window.jQuery || document.write(unescape("%3Cscript src='../js/jQuery_js.js' type='text/javascript'%3E%3C/script%3E"))</script>
上記は最初の原則と同じです。つまり、||演算子を使用して、window.jQueryがfalseの場合、ローカルjqueryライブラリがロードされます。