在查看了使用 Google 的 AJAX 库 API 而不是在本地使用 jQuery 的优缺点之后,我看到有人在一个答案中写道(当然是在 Stack Overflow 上),可以通过以下方式解决 Google 的 API 有时会遇到的停机时间以某种方式退回到您使用的库的本地副本。
我想在我的网站上使用 Google 的 AJAX 库 API,但我担心这种可能的停机时间,而且我很好奇如何实现这样的回退过程。
有没有人试过这样做?你能指出一些完成这样壮举的代码吗?
提前致谢。
在 Modernizr v3 之前,我使用的是 yepnope.js
Modernizr.load 和 yepnope.js 都已弃用。我们现在如何有条件地调用样式表或 javascript 文件?
适用于 Modernizr v2.5.3 的示例:
Modernizr.load({
test: Modernizr['object-fit'],
nope: ['./dist/scripts/object-fit.js'],
complete: function(){
if (!Modernizr['object-fit']) {
jQuery(".poster img").imageScale({
scale: "best-fill",
rescaleOnResize: true
});
}
}
});
Run Code Online (Sandbox Code Playgroud) 如果我有一个模块“externals.js”,其中包含:
import * as three from "'https://cdn.jsdelivr.net/npm/three@0.110.0/build/three.module.js";
export three;
Run Code Online (Sandbox Code Playgroud)
然后我可以毫无困难地从“main.js”使用它,如下所示:
import three as J3 from "./externals.js";
var renderer = new J3.WebGLRenderer();
// ... do lots of cool stuff with the renderer
Run Code Online (Sandbox Code Playgroud)
特别是,当执行到调用 WebGLRenderer 时, Three.js 已全部加载,并且我成功获得了渲染器。
但是,如果我想遵循使用 Google 托管 jQuery 的最佳方式似乎是最佳实践,但回退到我在 Google 上的托管库失败并回退到本地缓存的副本,以防 cdn.jsdelivr.net无法访问,我能找到在“externals.js”中执行操作的唯一方法是使用异步函数和动态导入,如下所示:
export var three;
export var threeLoaded = new Promise(async function(resolve, reject) {
var success = false;
try {
three = await import('https://cdn.jsdelivr.net/npm/three@0.110.0/build/three.module.js');
console.log("original import OK");
success = true;
} catch(err) {
try {
three …Run Code Online (Sandbox Code Playgroud) 这是一个不做功课的情况.:-)
除了动态加载优势之外,当我可以从我的服务器加载一个包含19kb jQuery zip文件+附加JavaScript代码的单个文件时,从Google服务器中包含一个JavaScript库(在我的情况下是jQuery)是否有意义?写了 - 所有压缩与JS压缩器和HTTP放气.
使用Google服务器,我将进行2次(并行)HTTP往返.一个用于获取jquery文件,另一个用于获取站点JavaScript代码.一个19kb,另一个说20-25kb.在正常情况下,从我的网站下载一次30-35kb.
我如何在cdn中加载以下内容,如果它们失败了,如果失败,我会加载我的本地文件加载
如何在Textbox使用时捕获以下键JavaScript?
Ctl + a
Ctl + c
Ctl + v
我有三个Textboxes电话号码.Textbox1最大长度为3,第二个为3,第三个为4.当用户键入三个数字时TextBox1,光标自动移动到TextBox2TextBox2和TextBox3同样的事情.我在keyup事件中处理此功能.现在,我平行使用您的代码.但它也会在keyup事件中发生变化.填写所有TextBox时会发生这种情况.现在假设我在TextBox1中并按下Ctl + A. 这会将用户移动到第三个TextBox(不可接受的情况).这是问题所在.
是否更好地引用jQuery文件包含以jQuery CDN获得更好的性能?
喜欢
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js" ></script>
Run Code Online (Sandbox Code Playgroud)
要么
jQuery在我们的项目中引用存储文件更好吗?
喜欢
<script type="text/javascript" src="/js/jQuery.min.js"></script>
Run Code Online (Sandbox Code Playgroud)
由于jQuery CDN链接处理缓存,它是否比jQuery我们项目中包含的文件更能提高性能?
我想创建一个简单的书签,隐藏我正在浏览的当前网站的所有图像.
javascript:body.getElementsByTagName("img").style.visibility="hidden";
Run Code Online (Sandbox Code Playgroud)
那不行?我想知道我做错了什么?
谢谢您的帮助!
嘿那里我一直在寻找在我正在开发的网站上使用JQuery ..一个简单的问题; 我能够链接到他们的脚本文件吗?例如:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
Run Code Online (Sandbox Code Playgroud)
或者我是否需要将自己的副本上传到服务器?
提前致谢.
因此,假设您正在实施一个使用jQuery HEAVILY的网站.你可以把一些代码
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
Run Code Online (Sandbox Code Playgroud)
并从某个存储库导入它.如果您在没有互联网的情况下开发它,您可以下载源并将其存储在本地某处,然后使用某些脚本访问它
<script src="js/jquery-1.10.2.min.js"></script>
Run Code Online (Sandbox Code Playgroud)
但有两种简单的方法吗?如果你可以到达存储库使用那个,但是如果你不能使用本地副本.
jquery ×6
javascript ×5
cdn ×2
asp.net ×1
bookmarklet ×1
conditional ×1
ecmascript-6 ×1
fallback ×1
google-cdn ×1
html ×1
http ×1
import ×1
modernizr ×1
performance ×1
yepnope ×1