检测是否JQuery CDN down并处理它
Detecting if the JQuery CDN is down and coping with it
我明天就要发布自己的网站了,预计会有几百次访问。
我根据PHP.net告诉我的写了这个脚本:
<?
$f = fsockopen("code.jquery.com", 80, $errno, $errstr, 30);
if(!$f){
echo '<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js" type="text/javascript"></script>'; }
else {
echo '<script src="http://code.jquery.com/jquery-1.6.4.min.js" type="text/javascript"></script>'; }
?>
基本上,如果code.jquery.com的CDN宕机了(就像20分钟前一样),那么Google API库就会启动。我已经尝试了它,而jQuery是向上的,它的工作原理,但只是以防它再次下降,这个脚本实际上会工作吗?(通过切换到谷歌的库)我不能真正测试它,我必须使code.jquery.com离线。哈哈
我想做CSS替换,但我的整个网站是基于jQuery和Ajax,所以我真的需要它在任何时候都能正常工作。我会把它放在我自己的网站上,但是我的网站在运行良好的情况下没有code.jquery.com或googleapis.com快。
谢谢!非常感谢您的回复
为什么要在服务器端这么做呢?在客户端做这个会更有意义:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="http://code.jquery.com/jquery-1.6.4.min.js">'x3C/script>')</script>
首先尝试从google加载库。如果它加载,那么window.jQuery
将可用。如果没有,则尝试从code.jquery.com加载。如果没有加载:
<script>window.jQuery || document.write('<script src="my/js/jquery-1.6.4.min.js">'x3C/script>')</script>
或者您可以使用basic html:
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="js/libs/jquery-1.6.2.min.js"><'/script>')</script>
这对你没有多大好处。在每个请求中放入fetch会大大降低速度。此外,如果您有上游缓存,则无论如何都不会反映更改。
我会选择一个完全javascript的解决方案:尝试加载一个,如果它不起作用,尝试另一个。
我相信这会很好地工作,但是这会给服务器的每个请求增加很多开销。
在客户端使用JavaScript,
<script src=http://code.jquery.com/jquery-1.6.4.min.js"></script>
<script>window.jQuery || document.write('<script src="//ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.js">'x3C/script>')</script>
您可以测试(在本地/测试服务器上)通过简单地在您的hosts文件(linux/etc/hosts, windows'system32'drivers'etc'hosts)中放入code.jquery.com的条目指向,例如,在您的网络上未使用的本地ip。系统将暂时将其视为code-jquery.com的DNS,并且不会从那里得到响应。
- 可以't让我的if语句处理js中的html表单输入
- keyup事件处理程序更改焦点不适用于快速键入
- 如何使用jquery处理php循环通过元素
- angular.js没有'无法在PhoneGap中处理视图标记
- Webpack/Rect:遵循egghead.io教程,但出现错误:您可能需要一个合适的加载程序来处理此文件类型
- 提示使用服务器端事件处理程序激活JavaScript
- javascript:如何在antlr生成的Lexer中进行错误处理
- 如何编写一个具有公共标头的批处理
- 在同一个服务工作者中处理service-worker.js有任何影响吗
- 如何处理node.js节点mongodb中的连接和查询队列
- 通过命令行/批处理文件打开页面时,将javascript代码注入Google Chrome
- 如何处理10页以上的静态页眉/页脚
- 将事件处理程序绑定到任何可能的事件
- 通过ajax将坐标传递到php服务器端,并在处理后检索到javascript
- python到“;流“;字典处理
- 使用javascript进行实时图像处理
- 导入jQuery脚本获胜'我不处理html文件
- Javascript无法处理表单提交
- 在承诺链中处理早期回报的最佳方式
- 检测是否JQuery CDN down并处理它