相关疑难解决方法(0)

使用谷歌托管的jQuery的最佳方式,但回到我在谷歌上的托管库失败

尝试在Google(或其他Google托管的lib)上加载托管jQuery的好方法,但如果Google尝试失败,请加载我的jQuery副本?

我不是说谷歌是片状的.有些情况下谷歌副本被封锁(例如在伊朗).

我会设置一个计时器并检查jQuery对象吗?

这两份副本的危险是什么?

并不是真的在寻找"只使用谷歌"或"只使用自己的"等答案.我理解这些论点.我也理解用户可能会缓存Google版本.我正在考虑一般的云回退.


编辑:这部分补充......

由于Google建议使用google.load加载ajax库,并在完成后执行回调,我想知道这是否是序列化此问题的关键.

我知道这听起来有点疯狂.我只想弄清楚它是否可以以可靠的方式完成.


更新:jQuery现在托管在微软的CDN上.

http://www.asp.net/ajax/cdn/

jquery cdn google-ajax-libraries

1012
推荐指数
10
解决办法
15万
查看次数

异步加载脚本

我正在使用几个插件,自定义小部件和一些来自JQuery的其他库.结果我有几个.js和.css文件.我需要为我的网站创建一个加载器,因为它需要一些时间来加载.如果我可以在导入所有之前显示加载器,那将是很好的:

<script type="text/javascript" src="js/jquery-1.6.2.min.js"></script>
<script type="text/javascript" src="js/myFunctions.js"></script>
<link type="text/css" href="css/main.css" rel="stylesheet" />
... 
....
 etc
Run Code Online (Sandbox Code Playgroud)

我找到了几个教程,使我能够异步导入JavaScript库.例如,我可以这样做:

  (function () {
        var s = document.createElement('script');
        s.type = 'text/javascript';
        s.async = true;
        s.src = 'js/jquery-ui-1.8.16.custom.min.js';
        var x = document.getElementsByTagName('script')[0];
        x.parentNode.insertBefore(s, x);
    })();
Run Code Online (Sandbox Code Playgroud)

出于某种原因,当我对我的所有文件做同样的事情时,页面不起作用.我一直在努力试图找到问题的所在,但我找不到它.首先我认为这可能是因为一些javascript函数依赖于其他函数.但是我使用超时功能以正确的顺序加载它们,当一个完成后我继续下一个并且页面仍然表现得很奇怪.例如,我无法点击链接等...动画仍然有效..

无论如何

这就是我一直在想的......我相信浏览器有一个缓存,这就是为什么第一次加载页面需要很长时间以及下次快速加载页面的原因.所以我想要做的是用一个异步加载所有这些文件的页面替换我的index.html页面.当ajax完成后,将所有这些文件重定向到我计划使用的页面.使用该页面时,加载时间不应太长,因为文件应该包含在浏览器的缓存中.在我的索引页面(异步加载.js和.css文件的页面)我不关心错误.我将只显示一个加载器并在完成后重定向页面...

这个想法是一个很好的选择吗?或者我应该继续尝试实现异步方法?


编辑

我加载所有异步的方式就像:

importScripts();

function importScripts()
{
    //import: jquery-ui-1.8.16.custom.min.js
    getContent("js/jquery-1.6.2.min.js",function (code) {
                var s = document.createElement('script');
                s.type = 'text/javascript';
                //s.async = true;
                s.innerHTML=code;
                var x = document.getElementsByTagName('script')[0];
                x.parentNode.insertBefore(s, x);
                setTimeout(insertNext1,1);
            });


    //import: jquery-ui-1.8.16.custom.min.js
    function insertNext1()
    {
        getContent("js/jquery-ui-1.8.16.custom.min.js",function (code) …
Run Code Online (Sandbox Code Playgroud)

html javascript ajax html5 asynchronous

119
推荐指数
5
解决办法
20万
查看次数

Firefox中的Html 5 datepicker

有没有办法我可以设置在HTML 5的firefox(版本21)中启用一个datepicker.我不想使用基于jQuery的datepicker,因为将在使用该网站的浏览器中禁用javascript.datepicker适用于Chrome.

因此,如果不支持html 5 datepicker,如何在没有jquery的情况下添加datepicker?

firefox html5 google-chrome

16
推荐指数
2
解决办法
5万
查看次数

有条件地加载polyfill

我正在建立一个我的目标群体非常普遍的网站(年龄13岁,所以你好IE9,你好古老的android浏览器),所以我需要polyfills一些东西(视口,计算等).之前我使用Modernizr和一些条件用户代理来定位IOS 6-7等.然后使用yepnope.js我正在加载特定的polyfill.

既然modernizr 3.0已经出现了,我注意到了Modernizr.load()已被弃用.此外,不推荐使用yepnope.js库.正如他们在他们的网站上所说

"有一些新的最佳实践,你可能应该遵循."

但我找不到他们中的任何一个.谷歌搜索一段时间后,每个人都推荐Modernizr和Yepnope.但是这个问题是如此新鲜(弃用,新版本的Modernizr),我找不到任何新的替代方法.

也许使用一些模块加载器(如require.js)可以完成这项工作吗?如果是,怎么样?

javascript modernizr polyfills

7
推荐指数
3
解决办法
2997
查看次数