Declare a variable with global scope within a local scope

In my JavaScript project, I am attempting to refresh the page once a user is logged in by polling to continuously monitor user data. Here is the code snippet below:

var check;
function poll(){
    return $.ajax({
        url: 'http://localhost:3000/poll',
        type:'GET',
        xhrFields: { withCredentials: true }
    }).done(function(data){
          console.log(data); //  if the user is logged in, the server sends the user object; otherwise, it doesn't
          if(typeof data.name !== "undefined"){
              check = '1';   // The browser does not retain the value of 'check' as 1 after reload
              window.location.reload();
          } else {
              setTimeout(function(){ poll(); }, 5000);
          }

      });
}

if(typeof check == 'undefined'){     // The issue arises on reload where the browser forgets that 'check = 1' was set before 
    setTimeout(function(){ poll(); }, 5000);
}

I aim to create a workflow where:

1) If the user is not logged in, the polling should continue to verify their login status.

2) Once the user logs in, the page should automatically reload and the polling should cease.

Answer №1

Utilizing the local storage feature of HTML5 in web browsers or storing data in cookies are good options.

Similar questions

If you have not found the answer to your question or you are interested in this topic, then look at other similar questions below or use the search

My picture is refusing to load... Why does it keep saying "image not found"? Any thoughts on why this might be

I've been trying to display a picture of myself on my html canvas, the image is stored in the correct folder. However, I keep encountering a strange error (shown above) and I can't seem to figure out what's causing it. If you have any insigh ...

When displaying content within an iframe, toggle the visibility of div elements

I'm attempting to toggle the visibility of certain page elements based on whether the page is loaded in an iframe. <script>this.top.location !== this.location && (this.top.location = this.location);</script> The above code succes ...

Enhancing your header with Kendo UI Tabstrip elements

I recently implemented a tabstrip using Kendo UI, where I added an element in the header with an event handler attached to it. Below is the code snippet: <div> <div id="details"> <div id="tabstrip"> <ul> ...

Discover the DOM events present in an HTML response

When sending multiple HTTP requests to a server and receiving a HTML + JS response, I need to determine which responses trigger JS alerts or DOM-based events. Node.js is being used to send the requests. Especially in cases where there is local JS on the c ...

Manipulating dynamic elements using jQuery

I am facing an issue with manipulating a dynamically created element using jquery fonticonpicker. Even though I have tried to modify the icon using the code below, it has not been successful as .icons-selector i is generated by the plugin itself. In the p ...

Opening PDF files will now be done automatically in a new window

A request from one of my clients is to have the links to pdf files on their website open automatically in a new window. I came up with this code that achieves the desired functionality: $("a[target!='_blank'][href$='.pdf']").attr("tar ...

Executing Ajax requests with callbacks in JavaScript/jQuery

I'm facing an issue where my functions are executing before Ajax requests (first fetching local JSON, then retrieving data from an online resource) have completed. For example, I want countTheMovies to run only after all the necessary information is ...

Ajax is utilized to run an external page and refresh the current page simultaneously

Currently, I am retrieving data from a database and using a button to selectively delete entries. The code below is what I have been using on a button click, and it functions just as I intend: $(".delete").click( function() { if (confirm('Delete ...

Tips for developing a directive that supplies values for ng-options

I have select elements with the same options throughout the entire app, but they may vary in appearance. For example, selects for a user's birthday (day, month, year). Is it possible to create a directive that can provide values or expressions for ng ...

Finding the length of a filter in an AngularJS directive

I'm trying to figure out how to retrieve the value of filtered.length within my custom directive called my-dir. <li my-dir ng-repeat="result in filtered = (results | filter:query | orderBy: 'title')"> <h1>{{ result.title }}& ...

Find the frequency of a specific string within a JSON array

My current task involves working with a stringified array: JSON.stringify(arr) = [{"x":9.308,"y":6.576,"color":"yellow","restitution":0.2,"type":"static","radius":1,"shape":"square","width":0.25,"height":0.25},{"x":9.42,"y":7.488,"color":"yellow","resti ...

Retrieve the properties of an object

I have a JavaScript program where I retrieve values from a JSON file and store them in an array. However, when I attempt to access the elements of this array, it returns nothing. Below is the function that pushes temperatures: temperatures = [] get_info ...

Manipulate Attributes in Javascript

Having an issue here - I'm trying to use JavaScript to set some attributes. for(i=0;i<div_navi.childNodes.length;i++){ if(div_navi.childNodes[i].nodeName =="SPAN"){ div_navi.childNodes[i].setAttribute("onclick","g ...

What is the best way to convert JSON data into a string array and showcase the results?

Recently, I've been exploring the fetch API to retrieve some data. After successfully fetching the data and displaying the response using console log, I now face a challenge in utilizing this information. The API provides me with "result", "id", and " ...

What could be causing my search function to not recognize special characters?

It seems like there might be an issue with character encoding. My JavaScript search function is unable to identify specific strings that contain certain special characters such as parentheses, asterisks, and numbers. The JavaScript code I am using is quit ...

What are the most effective strategies for managing vast amounts of data using JS fetch?

The server is taking about 2 minutes to export a large JSON data, resulting in a timeout error on the client side before receiving a response from the server. I have searched online for solutions, but I cannot find a way to extend the timeout or continue ...

Having Trouble with Updating Variables in AngularJS Service

I am faced with a challenge involving a series of images displayed side by side. My goal is to determine which image has been clicked, retrieve the relevant information, and display it in a modal window. HTML Markup <section class="portfolio-grid ...

convert an array into a JSON object using JavaScript

Is there a way to convert the following array structure arr = [{ "a":1, "b":2, "c":c }] into a JSON object format? arr = { "a":1, "b":2, "c":c } ...

Populating a ListBox without the need to constantly scroll upwards

I'm currently facing an issue with a ListBox that displays online users fetched from a MySQL database. Every second, the ListBox is updated with new users. The problem arises when adding an item to the ListBox causes it to scroll up, which I want to a ...

What are the steps to resolve the error "TypeError: req.next is not a function"?

I've been working on a project and keep encountering this persistent error that I can't seem to fix. I understand the issue, but unfortunately, I'm at a loss as to how to resolve it. Here is the error message: events.js:292 throw er; ...