Jump to content
Pitag346

Manter função em outras paginas!

Recommended Posts

Olá galera, tudo bom ?

 

Estou com uma dúvida... Tenho uma função javascript em que faz algumas requisições de uma API... porem eu tenho q chamar essa api a cada 4 minutos! (caso o usuário tenha ativado). 

Tudo bem...

essa função está em um arquivo chamado: Ativador.js 

E está configurada na index.php do meu site... (ao usuário apertar o botão ATIVAR, ele faz a requisição e com o SetInterval chama ela novamente a cada 4 minutos). Mas ai que vem minha dúvida...

Ao usuário mudar de pagina, a função para e o usuário teria que apertar ATIVAR novamente...

 

Gostaria de saber como fazer com que se o botão ativar for acionado e a função estivesse chamada (fazendo as requisições a cada 4 minutos) e o usuário mudasse de pagina isso continuaria... (Fazendo as requisições a cada 4 minutos) estilo o mini player do youtube.... POREM SE O USUÁRIO SAIR DO SITE E VOLTAR NOVAMENTE A FUNÇÃO ESTARIA DESATIVADA (O usuário teria que acionar o botão ativar novamente.,)

 

Obrigado. Ficou meio confuso se não tiverem entendido posso explicar melhor! Só queria um norte pois não sei como iniciar, tentei fazer algo com o LocalStorage ... declarando que a função está ativada e etc... mas tive problemas! 

Share this post


Link to post
Share on other sites
3 minutos atrás, gabrielms disse:

@Pitag346 Você pode usa os Cookies para passar informações de uma página para outra, assim passando a informação ativo para as outras página.

 

Aqui tem um tutorial de como utilizar https://www.w3schools.com/js/js_cookies.asp.

 

Obs..: Lembre de adicionar um tempo para o Cookie expirar.

 

Esse é o detalhe... Quando o usuário fechar a pagina e voltar (as vezes rapidamente) o cookie pode ainda estar disponível ou seja, a função ira continuar ativa! Tem algum forma de eu definir para os cookies expirarem caso fechar a pagina ?

Share this post


Link to post
Share on other sites

@Pitag346 Coloca um Cookies com um contador de tempo que vai ficar se atualizando com mais freqüência.

 

Caso essa funcionalidade seja essencial na sua aplicação, você pode colocar em seu layout uma transição por javascript, assim a pagina vai mudar e o script só vai rodar somente quando a pagina ficar aberta.

 

Você também pode optar por Socket Web.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By cmoreira1300
      Meu programa não consegue identificar o dotenv na middleware
      Eu estava fazendo um CRUD simples, implementei o dotenv no meu programa, está funcionando quando faço a conexão com o banco de dados e a inserção e uma função normal,  mais quando vou fazer isso dentro de uma middleware ele não chama meu dotenv, só funciona quando tiro o process.env e ponho as informações direto na função de conexão.
      require( 'dotenv' ).config( { path: '../../.env' } ) const mysql = require( 'mysql2' ) // DESSA FORMA NÃO FUNCIONA const connection_pool = mysql.createPool( { host: process.env.DB_HOST, user: process.env.DB_USER, database: process.env.DB_DATABASE, password: process.env.DB_PASS } ) // DESSA FORMA FUNCIONA // const connection_pool = mysql.createPool( { // host: 'localhost', // user: 'carlos', // database: 'simple_crud', // password: 'pass1241' // } ) module.exports = connection_pool.promise() INSERÇÃO NO BANCO DE DADOS
      const db_conn = require( '../db/connection' ) const createNewClient = ( name ) => { return db_conn.execute( `INSERT INTO client ( name ) values (?)`, [ name ] ) } module.exports = { createNewClient } FAZENDO A INSERÇÃO NO MIDDLEWARE
      const data = require( '../data/client' ) const createClient = ( req, res, next ) => { const client = req.body.name data.createNewClient( client ) .then( () => { res.status( 200 ).json( { 'status': 'sucess', 'client': client } ) } ) .catch( ( err ) => { res.status( 404 ).json( { status: 'error', error: err } ) } ) .finally( () => { next() } ) } module.exports = { createClient } { "status": "error", "error": { "message": "Access denied for user ''@'localhost' (using password: YES)", "code": "ER_ACCESS_DENIED_ERROR", "errno": 1045, "sqlState": "28000", "sqlMessage": "Access denied for user ''@'localhost' (using password: YES)" } }  Esse é o erro que obtenho quando uso o dotenv, lenbrando que as informações de login estão todas certas, e que em outra função que não seja um middleware funciona.
    • By Felipe Guedes Coutinho
      Galera, estou precisando ler 1 arquivo TXT mas não quero usar nenhum INPUT para carregar o arquivo.
       
      Eu tenho uma estrutura de pasta onde os meus arquivos TXT ficaram fisicamente e no meu código HTML + JS quero que ao alterar um SELECT OPTION, através da escolha eu validar se o arquivo com o nome selecionado existe na página e se existir eu ler ele e adicionando em um elemento qualquer, uma DIV como conteúdo ou dentro de uma TEXTAREA.
       
      Vou montar a estrutura de pasta abaixo e colocar imagens de exemplo:
       
      Estrutura de pasta
      projeto
          index.html
          dclgen <-- Aqui dentro tenho vários arquivos do formato TXT
              t1.txt
              t2.txt
              t3.txt
              ...
              t4.txt
       
      Pasta DCLGEN dentro da pasta projeto e a pasta DCLGEN junto com o arquivo HTML

       
      Ao escolher no SELECT o nome T1 quero que o JavaScript veja se o arquivo t1.txt existe e se existir quero LER o conteúdo dele e jogar em um ELEMENTO HTML.

       
      Preciso fazer isso da forma mais "SIMPLES" possível usando HTML e JavaScript.
       
      Alguém pode dar um help? Pesquisei no Google muitas opções e os códigos encontrados não me atenderam.
       
      Não quero ser obrigado a fazer um "UPLOAD" usando um INPUT do TIPO FILE, quero usar algo já dentro da pasta do projeto.
      <!DOCTYPE html> <html> <head> <title>Read Text File Tutorial</title> </head> <body> <input type="file" onchange="loadFile(this.files[0])"> <br> <pre id="output"></pre> <script> async function loadFile(file) { let text = await file.text(); document.getElementById('output').textContent = text; } </script> </body> </html> Código usando FileReader, mas que também está usando um INPUT como estimúlo, não é o que quero.
      document.getElementById('file').onchange = function(){ var file = this.files[0]; var reader = new FileReader(); reader.onload = function(progressEvent){ var fileContentArray = this.result.split(/\r\n|\n/); for(var line = 0; line < lines.length-1; line++){ console.log(line + " --> "+ lines[line]); } }; reader.readAsText(file); }; Encontrei esse código também, mas não consegui usar...
      Esse é o parâmetro passado na url "https://dicasdejavascript.com.br/exemplo.txt" function lerURL(URL) { var http = new XMLHttpRequest(); http.open("GET", URL, false); http.send(); console.log(http.responseText); } Espero que alguém consiga me ajudar...
       
      Desde já agradeço.
       
      Atenciosamente.
      Felipe Coutinho

    • By Giovanird
      Ola!
      Tenho uma lista de usuários e um link que abre uma div que mostra os detalhes deste usuario, este link usa o evento onClick do javascript.
      O problema é que quando clicado para abrir a div, a tela sobe para o inicio do topo.
      Preciso que a tela nao faça a rolagem para o topo e sim que fique na posição da lista.
      Segue meu codigo abaixo.
      Obrigado por momento
       
      <div class="container"> <div class="row"> <?php foreach para listar os usuários.... ?> <div class="col-10"> Nome do usuário </div> <div class="col-2"> <a href="#" onClick="Mudarestado('minhaDiv<?=$cod?>')"><img src="icons/chevron-right.svg"></a> </div> *** Parte ficará visivel ao clicar no link OnClick *** <div class="divacoes" id="minhaDiv<?=$cod?>" style="display:none"> <div class="row"> <div class="col"> ... dados dos usuarios... </div> </div> </div> *** **** <?php fim foreach que gera a lista de usuários... ?> </div> </div> <style> .divacoes { background-color: #64A338; border: none; padding: 20px; width: 97%; height: 80px; } </style> <script> function Mudarestado(el) { var display = document.getElementById(el).style.display; if (display == "none") document.getElementById(el).style.display = 'block'; else document.getElementById(el).style.display = 'none'; } </script>  
    • By Rafael Massula
      Boa noite pessoal, 
      Tenho o seguinte código em .Net que faz a comparação de uma senha que foi criptografada e salva no banco com a senha comum que o usuário conhece. O algoritmo que desenvolvi foi esse da image.png porem preciso converter essa verificação para JavaScript pela seguinte necessidade, será uma aplicação em electron e ela poderá funcionar offline então não terei como mandar a verificação para o servidor. Existe alguma possibilidade? Desde já agradeço. 

    • By Caio Vargas
      fala pessoal tudo bem
      eu avia postado algo aqui mais so tive uma simples resposta ...
       
      uma cliente pediu pra eu criar um sistema de agendamento de serviços pra ela
      atualmente ela mora no canada e estou desenvolvendo um site pra ela
      eu  etou com uma grande duvida .... como posso cadastrar dadas continuas .... no sistema
       
      tipo se eu cadastrar um serviço de barbeiro e colocar uma data e um horario esse serviço tem que valer para segunda terça quarta quinta sexta sabado e domingo e todos os meses
      como posso fazer isso em php
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.