【问题标题】:Fallback Javascript with PHP from CDN to Local Storage on Unavailable使用 PHP 从 CDN 到本地存储的后备 Javascript 不可用
【发布时间】:2013-08-09 14:49:01
【问题描述】:

我需要一些帮助。我想为我的源代码创建一个后备。我正在使用 cdn 来托管我的 javascript、css 和图像。我想要做的是在 php 中创建一个后备,例如 ip 123.456.789 在 400 毫秒内不可用,php 将后备以在 987.654.​​321 处获取我的本地存储

我在想一些事情:

if ip 123.456.789 in 400ms 

//show this file from 123.456.789

else

//show this file from 987.654.321

我有我的源代码硬编码,例如:

<script type="text/javascript" src="123.456.789/js/jquery.js"></script>

所以如果 123.456.789 在 400 毫秒内不可用,我希望加载这个

<script type="text/javascript" src="987.654.321/js/jquery.js"></script>

【问题讨论】:

  • 你是如何连接到 123.456.789 的?
  • 问题是您如何访问可能需要超过 400 毫秒的数据,知道我可以建议最好的方法
  • 可以用纯 js 完成,或者在 php 中发出 curl 请求并设置超时。
  • 优秀问题A++++++

标签: php javascript html cdn fallback


【解决方案1】:

我刚才回答了我自己的问题。所以决定在这里分享。

<?php
//debug off by default
error_reporting(0);

//cdn fallback
if (!isset($_GET['aws_cdn'])) {

        $cdn_fallback = curl_init('http://123.456.789/'); //Set to CDN IP or URL
        curl_setopt($cdn_fallback, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($cdn_fallback, CURLOPT_NOSIGNAL, 1);
        curl_setopt($cdn_fallback, CURLOPT_TIMEOUT_MS, 400); //How many milliseconds before fallback to local storage

        $data = curl_exec($cdn_fallback);
        $curl_errno = curl_errno($cdn_fallback);
        $curl_error = curl_error($cdn_fallback);
        curl_close($cdn_fallback);

        if ($curl_errno > 0) { ?>  
    <script type="text/javascript" src="http://example.com/js/jquery.js"></script>
      <?php } else { ?>
    <script type="text/javascript" src="http://123.456.789/cdn/js/jquery.js"></script>
      <?php }} ?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-01
    • 1970-01-01
    • 2023-03-29
    • 1970-01-01
    • 2019-06-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多