Javascript overloads Chromium's memory capacity

I've been working on a code snippet to update a graph displayed on a Raspberry Pi periodically, but I'm running into memory issues. The limited memory of the Pi causes Chromium to crash due to memory overflow when updating the image. It seems like older images are not being properly cleared, leading to the memory leak. I attempted to use JavaScript to delete the old image and replace it with an updated one, but my solution didn't work as I expected. Since I'm not very experienced with JavaScript, I'm unsure if I made a rookie mistake in my implementation. Here's the code snippet:

<script type= "text/javascript">
var graph = "http://www.example.com";
function preload() 
{
    try
    {
        var buffer = new Image();
        buffer.src = graph;
        buffer.onload = function() 
        {
            while (1)
            {
                setTimeout(preload, 1000);
                document.getElementById('graph').src = buffer.src;
            }
        }
    }

    catch(err)
    {
        txt = "Error\n" + err.message;
        alert(txt);
    }
}   
preload()
</script> 

And the HTML for the image is:

<img src= "http://www.example.com" id=graph width=1015 
    height=275 frameborder="0" onload="preload()" style="display: block; 
    margin-left: auto; margin-right: auto;" align="bottom"/>

Answer №1

Here is a greatly simplified script that may be helpful to you - the loop in your original code was not logical and there was no mention of Ajax

var imageSource = "https://zabbix.tulsahpc.org/signage/sign.png", timerId;
window.onload=function() {
  timerId=setInterval(function() {
    document.getElementById('image').src = imageSource+new Date().getTime();// to prevent caching
  },10000);// refresh every 10 seconds
}

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

Manipulating div position interactively with vanilla javascript during scroll

I'm trying to create an effect where an image inside a div moves vertically downwards as the user scrolls, stopping only at the end of the page. I've attempted a solution using a script from another post, but it doesn't seem to be working. ...

The application runs smoothly during development, but encounters issues once deployed on Heroku

I am encountering an issue while deploying my app on Heroku. The deployment process goes smoothly, but when I try to open the app, I receive the following error message: Application error An error occurred in the application and your page could not be ser ...

Guide to retrieving all selected options from a multi-select box using jQuery

I have a lengthy form that is constantly changing and includes multiple Select Options such as <select class="common_dt_select" id="select_15" data-col-index="15"> <option value="">All CC Status</option> <option value="0">De ...

Creating a semicircle shape using three.js extrusion

I am trying to create half of an extruded circle using this code, but it only draws a cube. How can I modify it to achieve the desired shape? // Drawing half of an extruded circle var rightfootgeo = new THREE.CubeGeometry(2, 2, 2); for(var i = 0; i < ...

Direct your attention to the cursor problem in Internet Explorer

Here is a snippet of code that automatically changes background images: function changeBackground() { currentBackground++; if(currentBackground > 3) currentBackground = 0; $('body').fadeOut(0, function() { $('body&ap ...

Debounce on React Component

Attempting to add a delay to a react component with an input field that updates when changed Below is the method used for onChange: handleOrderQtyKeyPress (e) { var regex = /[^0-9]/ if (e.key.match(regex)) { e.preventDefault(); } ...

Issue with Angular select not successfully binding to enum value

I am facing an issue with my component.ts file. Here is the code snippet: import {Component, OnInit} from '@angular/core'; import {IBook} from "../../models/book.model"; import {ActivatedRoute} from "@angular/router"; impor ...

Select a Date: Input for Date Selection

Is it possible to restrict the selection of certain days using HTML date input validation? Some booking websites have a feature where an interactive calendar only allows users to select specific dates for events, while others are greyed out and cannot be c ...

Error message: "Despite using the 'use client' function in Next.js, a ReferenceError occurs as 'window' is undefined."

What is the reason for the server running this hook when "use client" is included? It does not lead to any application crashes, everything functions with no errors, but an error is logged at the const [windowWidth, setWindowWidth] = useState(window.innerWi ...

The React Bootstrap modal is encountering an error, specifically a TypeError where it is unable to read properties of undefined, specifically the 'classList'

Every time I try to open a modal, an error pops up saying "TypeError: Cannot read properties of undefined (reading 'classList')." I'm unsure about how to resolve this issue. Here is the code for the specific modal and the button that trigger ...

What is the best way to use checkboxes in VueJS to apply filters on a loop and display specific results?

I'm struggling with implementing filters using checkboxes on a list of results and could really use some assistance. Currently, only the 'All' option is working for applying any filtering logic. Here is how my HTML looks like with the filt ...

Easily include Access-Control-Allow-Origin: * in JSON data

My web server hosts a folder (let's say the link is: www.foo.com/json/). Within this directory, there is a json file named foo.json. I am interested in accessing this file from a different website. I attempted to research "CORS," but found it to be q ...

Every time I attempt to verify a string value in Typescript, this condition will consistently evaluate to true

I'm working with a variable called phone, which is a number type. My task is to verify that the first two digits of this phone number are not 33 or 32. In order to do this, I converted the number to a string and extracted the first and second digits f ...

When clicking initially, the default input value in an Angular 2 form does not get set

I am currently learning angular2 as a beginner programmer. My goal is to create a form where, upon clicking on an employee, an editable form will appear with the employee's current data. However, I have encountered an issue where clicking on a user f ...

Exploring object properties to access JSON arrays

Consider this scenario with a JSON file: { "shows": [ { "name": "House of cards", "rating": 8 }, { "name": "Breaking bad", "rating": 10 } ] ...

Having issues retrieving tweets from my Twitter account, even though I am able to successfully post tweets

I've been attempting to retrieve tweets from my Twitter account using the Twitter API, but I keep encountering errors with all combinations failing. Despite having all the necessary node_modules and everything appearing to be in order, I still receive ...

Enhance data table by displaying a set number of rows that do not completely fill the table's height

I'm currently attempting to implement a v-data-table with fixed header and footer. However, I've encountered an issue where if I set the table height to be larger than the row height, the table takes on the defined height and the footer ends up b ...

Explore the capabilities of Vue.js by creating multiple JavaScript classes within your application

<div class="container" :class="{ qwerty: !open }" :class="lower? 'left' : 'right'"> Hey there, I've noticed that Vue seems to only allow me to add one class with conditions, as shown in the exam ...

What is the process for implementing an image as the background instead of a color for each column in a Google chart?

I'm currently working with Google Chart and I have set up a column chart. However, I am looking to display a background image instead of a background color in each column. Is this achievable with Google Chart? If so, how can I accomplish this? If anyo ...

Issue with Google Adsense - adsbygoogle.push() error: Pages can only support one AdSense head tag. The additional tag will be disregarded

After adding my script tag to the navbar component, I encountered an error on my site during the next js build: Google Adsense error -adsbygoogle.push() error: Only one AdSense head tag supported per page. The second tag is ignored <Head> ...