Code Monkey home page Code Monkey logo

Comments (14)

zackbloom avatar zackbloom commented on July 28, 2024

Good point. Each way of determining connectedness has its pluses and minuses, no one way is perfect. Offline ships with two methods. One makes a request for a tiny image hosted on my cloudfront account for the benevolence of all, the other makes an XHR request against the current domain, hoping to get back any sort of response (even a 404).

You can change the url of the image to be one you control, if you like:

Offline.options = {checks: {image: {url: 'my-image.gif'}}};

Loading an image was chosen (rather than a script file), because it limits the potential damage if a hostile party were to be in control of it.

You can also switch to the XHR method:

Offline.options = {checks: {active: 'xhr'}}

The XHR method is not enabled by default because of a concern that some sites do a significant amount of processing to build their 404 page, so it's not something we want to send unnecessarily. It's also possible that the page would respond with a redirect to a different domain, creating a CORS problem. If you have control of the domain and can create an endpoint which just responds with a quick 204, that's the perfect solution. You can set the endpoint in settings as well:

Offline.options = {checks: {xhr: {url: '/health-check'}}};

Tomorrow I'll move most of this over to the README proper.

from offline.

squallstar avatar squallstar commented on July 28, 2024

Hello and thanks for your nice offline plugin. I'm trying to use the xhr "health check" method but it seems that the plugin is still loading the cloudfround image, rather than the configured url.

Here's the console.log on chrome

screen shot 2013-10-25 at 10 44 02

Thanks for your help

from offline.

zackbloom avatar zackbloom commented on July 28, 2024

You'll also need to tell it to use the xhr check:

Offline.options = {
  checks: {
    xhr: {
      url: '/health-check'
    },
    active: 'xhr'
  }
};

from offline.

squallstar avatar squallstar commented on July 28, 2024

thanks! :-)

from offline.

squallstar avatar squallstar commented on July 28, 2024

I just tried and it seems that as soon as you are offline it stucks into a recursive loop, calling the xhr url thousands of times.

from offline.

ijafri avatar ijafri commented on July 28, 2024

Just wanted to confirm is below correct

<script type="text/javascript">
    Offline.options = {
        checks: {
            image: {url: '../img/test.gif'}
        },

        requests: false
    }
  </script>     

from offline.

zackbloom avatar zackbloom commented on July 28, 2024

@squallstar Thanks for letting me know, fixed in v0.4.3.

from offline.

zackbloom avatar zackbloom commented on July 28, 2024

@Sifarat

<script type="text/javascript">
    Offline.options = {
        checks: {
            image: {url: '../img/test.gif'},
            active: 'image'
        },

        requests: false
    }
  </script>     

from offline.

ijafri avatar ijafri commented on July 28, 2024

that's strange. does not work. the offline message won't go away even after the connection is established.

from offline.

zackbloom avatar zackbloom commented on July 28, 2024

Just out of curiosity, does it work when requests is not disabled?

from offline.

ijafri avatar ijafri commented on July 28, 2024

the bug was ',' after the image: {url: '../img/test.gif'},. removing it fixes the issue :)

from offline.

zackbloom avatar zackbloom commented on July 28, 2024

Ah, great!

from offline.

ijafri avatar ijafri commented on July 28, 2024

But now requests (false) not working. after I removed above comma

from offline.

ijafri avatar ijafri commented on July 28, 2024

I have just replaced cloundfront file with my own in min.js for time being.

from offline.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.