Jump to content
carloselsb

Quando excede o limite do localStorage. Existe uma outra alternativa?

Recommended Posts

Estou com um projeto em que após o login, carrego todos os dados primordiais do usuário em um localStorage. Uma vez logado, esse objeto JSON armazenado como string criptografada pode ser acessado offline, inclusive. Porque trata-se de um projeto web embarcado em um webview Java Android. Pois bem. Estou com um cliente que excedeu esse limite por ter mais de 30K linhas de informação especifica que é transformada em string e posteriormente criptografada. Lógico que isso excedeu o limite do localStorage.

 

localStorage.setItem('corexmr', GARRA.Const.Criptografia.set(JSON.stringify(GARRA)));


Minha primeira dúvida foi saber se o limite era empregado a unidade do localStorage usado ou se esse limite é do uso do LS no projeto. Tirei essa duvida porque criei uma função de empilhamento de LS, monitorando o limite distribuido em cada. Então, se seu fizesse um armazenamento, eu poderia realizar um stringfy, criptografar, mensurar o tamanho e dividir pelo limite em storages como 'core', 'core1', 'core2', ...

 

GARRA: {
	Methods: {
        localStorage: {
            limitcharacter: 5000000,
            set: function(nome, obj) {
                var objString = GARRA.Const.Criptografia.set(JSON.stringify(obj));
                if (GARRA.Methods.localStorage.limitcharacter > objString.length) {
                    localStorage.setItem(nome, objString);
                } else {
                    var calc = (objString.length / GARRA.Methods.localStorage.limitcharacter), i = 0, start = 0;
                    while (i <= calc) {
                        localStorage.setItem((i === 0) ? nome : nome + i.toString(), objString.substr(start, GARRA.Methods.localStorage.limitcharacter));
                        start = (start + GARRA.Methods.localStorage.limitcharacter);
                        i++;
                    }
                }
            },
            load: function(nome) {
                var end = false, i = 0, content = '';
                while (!end) {
                    if (localStorage.getItem((i === 0) ? nome : nome + i.toString()) == null) {
                        end = true;
                    } else {
                        content += localStorage.getItem((i === 0) ? nome : nome + i.toString());
                    }
                    i++;
                }
                return JSON.parse(GARRA.Const.Criptografia.load(content));
            }
        }
    }
}


Mas mesmo assim cheguei ao limite. 

Pergunta:
- Existe uma solução alternativa, para quem quer continuar a armazenar localmente no cliente sob regime de persistência?

 

 

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 Dinho Nunes LC
      <div align="center" id="subtitulo"> Canais Abertos </div> <div class="ui cards"> <div class="card"> <div class="content"> <a href="globo.html" style="display: block; color: black"> <div align="center"> <div> <img class="ui tiny image" id="imagem_card_casa" src="assets/images/Rede_Globo_2014.png"> <div align="center" id = "nome_time_fora"> <b>Globo RJ</b> </div> </div> Onde "globo.html" seria substituído pelo link que esta em uma tabela do banco de dados.
       
      Já fiz a conexão. E tenho a base de dados pronta.
       
      Motivo pelo qual estou buscando ajuda:
       
      Faço manualmente a mudança de cada link (são mais de 300) diariamente para evitar copias de terceiros. Sendo assim poderia usar um CRUD para facilitar a troca dos links direto no banco de dados.
    • By ricardonews
      Olá pessoal, fiz 2 formularios  de login em jquery e ajax, um eu vi na internert o modelo então fiz umas adaptações e funcionou com meu banco de dados. porem o outro que fiz baseado nele não funcionou. vou postar aqui pra voces o funcionando e o não funcionando, alguém pode me dar uma ajuda?, dizer que erro é esse? ele simplesmente não loga e não aparece erros no console.
      <!doctype html> <html> <?php require_once"config.php"; ?> <head> <title>APRENDIZ DE JS</title> <link href="style.css" rel="stylesheet" type="text/css"> <script src="jquery-3.2.1.min.js" type="text/javascript"></script> <script type="text/javascript"> $(document).ready(function(){ $("#but_submit").click(function(){ var username = $("#meu_nome").val().trim(); var password = $("#minha_senha").val().trim(); if( username != "" && password != "" ){ $.ajax({ url:'pesquisar.php', type:'post', data:{username:username,password:password}, success:function(response){ var msg = ""; if(response == 1){ window.location = "home.php"; }else{ msg = "Invalid username and password!"; } $("#message").html(msg); } }); } }); }); </script> </head> <body> <div class="container"> <div id="div_login"> <h1>Login</h1> <div id="message"></div> <div> <input type="text" class="textbox" id="meu_nome" name="meu_nome" placeholder="Username" /> </div> <div> <input type="password" class="textbox" id="minha_senha" name="minha_senha" placeholder="Password"/> </div> <div> <input type="button" value="logar" name="but_submit" id="but_submit" /> </div> </div> </div> </body> </html> /* Container */ .container{ width:40%; margin:0 auto; } /* Login */ #div_login{ border: 1px solid gray; border-radius: 3px; width: 470px; height: 270px; box-shadow: 0px 2px 2px 0px gray; margin: 0 auto; } #div_login h1{ margin-top: 0px; font-weight: normal; padding: 10px; background-color: cornflowerblue; color: white; font-family: sans-serif; } #div_login div{ clear: both; margin-top: 10px; padding: 5px; } #div_login .textbox{ width: 96%; padding: 7px; } #div_login input[type=submit]{ padding: 7px; width: 100px; background-color: lightseagreen; border: 0px; color: white; } #message{ width:100%; text-align:center; color:red; } /* media */ @media screen and (max-width:720px){ .container{ width: 100%; } #div_login{ width: 99%; } } <?php require_once "config.php"; // AQUI É O PESQUISAR PHP $uname = mysqli_real_escape_string($con,$_POST['username']); $password = mysqli_real_escape_string($con,$_POST['password']); if ($uname != "" && $password != ""){ $sql_query = "SELECT count(*) as cntUser FROM usuarios WHERE username='".$uname."' and password='".$password."'"; $result = mysqli_query($con,$sql_query); $row = mysqli_fetch_array($result); $count = $row['cntUser']; if($count > 0){ $_SESSION['uname'] = $uname; echo 1; }else{ echo 0; } } <?php require_once "config.php"; // AQUI É A HOME.PHP // Check user login or not if(!isset($_SESSION['uname'])){ header('Location: index.php'); } // logout if(isset($_POST['but_logout'])){ session_destroy(); header('Location: index.php'); } ?> <!doctype html> <html> <head> <title>SEJA BEM VINDO!</title> </head> <body> <h1>PÁGINA INICIAL</h1> <form method='post' action=""> <input type="submit" value="SAIR" name="but_logout"> </form> </body> </html> <?php // ESSE AQUI É A CONFIG.PHP session_start(); $host = "localhost"; /* Host name */ $user = "root"; /* User */ $password = ""; /* Password */ $dbname = "login2"; /* Database name */ $con = mysqli_connect($host, $user, $password,$dbname); // Check connection if (!$con) { die("Connection failed: " . mysqli_connect_error()); } Então pessoal, até aqui funciona normal .
      agora a linha abaixo é oque não funciona e eu vou postar só a index e o css porque repete o de cima.
      se alguém poder me ajudar eu fico grato. desde já muito obrigado
      <html> <?php require_once"config.php"; ?> <head> <title>Formulario de login </title> <link href="css/style.css" rel="stylesheet" type="text/css" /> <script src="jquery-3.2.1.min.js" type="text/javascript"></script> <script type="text/javascript"> $(document).ready(function(){ $("#but_submit").click(function(){ var username = $("#meu_nome").val().trim(); var password = $("#minha_senha").val().trim(); if( username != "" && password != "" ){ $.ajax({ url:'pesquisar.php', type:'post', data:{username:username,password:password}, success:function(response){ var msg = ""; if(response == 1){ window.location = "home.php"; }else{ msg = "Invalid username and password!"; } $("#message").html(msg); } }); } }); }); </script> </head> <body> <form id="formulario" method="post"> <fieldset> <h2>Configuracoes da conta</h2> <h3>Area de login </h3> <input type="text" id="meu_nome"name="meu_nome" placeholder="username" /> <input type="password" id="minha_senha " name="minha_senha" placeholder="digite sua senha" /> <input type="submit" class="next acao" value="Logar" /> </fieldset> </body> </html> agora é o css
      *{margin:0; padding:0;} html{ height:100%; background: linear-gradient(rgba(38, 128, 101, 0.9), rgba(52, 177, 140, 0.9)); } .erros, .ok { width:390px; padding:5px; background:rgba(238, 249, 113, 0.9); margin: 20px auto 0 auto; border: 1px solid rgba(222,239,10,0.9); border-radius: 4px; color: #333; } .ok{background: rgba(155,222,143,0.9);border-color: rgba(68, 171, 50, 0.9);color:white;} body{ font-family: "Trebuchet MS", tahoma, arial; } #formulario{ width:500px; margin:40px auto; text-align:center; position:relative; } #formulario fieldset{ background:white; border:0 none; border-radius:5px; -moz-border-radius:5px; -webkit-border-radius:5px; box-shadow:0 0 15px 1px rgba(0,0,0, 0.4); padding:20px 30px; box-sizing: border-box; width:80%; margin:0 10%; position:absolute; } #formulario input, #formulario textarea{ padding:10px; border:1px solid rgba(38, 128, 101, 0.9); border-radius:4px; -moz-border-radius:4px; -webkit-border-radius:4px; outline:none; box-sizing: border-box; width:100%; font:14px "Trebuchet MS", tahoma, arial; color:#090; margin-bottom:10px; } #formulario .acao{ width:100px; background:rgba(38, 128, 101, 0.9); color:white; text-transform:uppercase; font-weight:bold; padding:12px 0; float:left; margin-right:5%; } #formulario .acao:hover{background:rgba(52, 177, 140, 0.9); cursor:pointer;}  
    • By ricardonews
      Olá pessoal eu tenho essa imagem de um login  que vou mostrar aqui, consegui  o css dela , porem não consegui colocar no meu login,  eu vou deixar o login em html,  em css eu estou  dificuldade. Desde já agradeço a todos
       

       então eu o css dela é esse aqui
      *{margin:0; padding:0;} html{ height:100%; background: linear-gradient(rgba(38, 128, 101, 0.9), rgba(52, 177, 140, 0.9)); } .erros, .ok { width:390px; padding:5px; background:rgba(238, 249, 113, 0.9); margin: 20px auto 0 auto; border: 1px solid rgba(222,239,10,0.9); border-radius: 4px; color: #333; } .ok{background: rgba(155,222,143,0.9);border-color: rgba(68, 171, 50, 0.9);color:white;} body{ font-family: "Trebuchet MS", tahoma, arial; } #formulario{ width:500px; margin:40px auto; text-align:center; position:relative; } #formulario fieldset{ background:white; border:0 none; border-radius:5px; -moz-border-radius:5px; -webkit-border-radius:5px; box-shadow:0 0 15px 1px rgba(0,0,0, 0.4); padding:20px 30px; box-sizing: border-box; width:80%; margin:0 10%; position:absolute; } #formulario input, #formulario textarea{ padding:10px; border:1px solid rgba(38, 128, 101, 0.9); border-radius:4px; -moz-border-radius:4px; -webkit-border-radius:4px; outline:none; box-sizing: border-box; width:100%; font:14px "Trebuchet MS", tahoma, arial; color:#090; margin-bottom:10px; } #formulario .acao{ width:100px; background:rgba(38, 128, 101, 0.9); color:white; text-transform:uppercase; font-weight:bold; padding:12px 0; float:left; margin-right:5%; } #formulario .acao:hover{background:rgba(52, 177, 140, 0.9); cursor:pointer;} Aqui abaixo é o html que eu não consegui deixar no css do jeito que está na imagem.
      <!doctype html> <html> <?php require_once"config.php"; ?> <head> <title>APRENDIZ DE JS</title> <link href="style.css" rel="stylesheet" type="text/css"> <script src="jquery-3.2.1.min.js" type="text/javascript"></script> <script type="text/javascript"> $(document).ready(function(){ $("#but_submit").click(function(){ var username = $("#meu_nome").val().trim(); var password = $("#minha_senha").val().trim(); if( username != "" && password != "" ){ $.ajax({ url:'pesquisar.php', type:'post', data:{username:username,password:password}, success:function(response){ var msg = ""; if(response == 1){ window.location = "home.php"; }else{ msg = "Invalid username and password!"; } $("#message").html(msg); } }); } }); }); </script> </head> <body> <div class="container"> <div id="div_login"> <h1>Login</h1> <div id="message"></div> <div> <input type="text" class="textbox" id="meu_nome" name="meu_nome" placeholder="Username" /> </div> <div> <input type="password" class="textbox" id="minha_senha" name="minha_senha" placeholder="Password"/> </div> <div> <input type="button" value="logar" name="but_submit" id="but_submit" /> </div> </div> </div> </body> </html>  
       
    • By egalauber
      Quero que meus links tenham marcadores e que os marcadores fiquem selecionados juntos com o link. Pra isso, coloquei o LI dentro do A. <a><li>meu link</li></a>
      Só que o link ficou muito grande. Mesmo com o mouse longe do texto, ele já ativa o link. Vejam na imagem.
       

       
      Vejam o código:
       
      CSS
      #links_uteis {
              width:482px;
              height:230px;
              float:right;
              margin-top:20px;
              margin-right:20px;
              font-size:20px;
              list-style-type:disc;
              list-style-position:inside;
          }
      #links_uteis table {
              width:420px;
              margin-left:10px;
          }
      #links_uteis td {
              width:210px;
              padding:5px 10px 5px 10px;
          }
      #links_uteis a:hover {
              text-decoration:underline;
              color:#D90000;
          }
       
       
      HTML
      <div id="links_uteis">
      Links úteis
      <div class="barra_titulo"></div>
      <table border="0" cellspacing="0" cellpadding="0">
        <tr>
          <td>
          <a href="#" target="_blank"><li>Inmetro</li></a>
          </td>
          <td>
          <a href="#" target="_blank"><li>Seplag</li></a>
          </td>
        </tr>
        <tr>
          <td>
          <a href="#" target="_blank"><li>Ipsemg</li></a>
          </td>
          <td>
          <a href="#" target="_blank"><li>IOF-MG</li></a>
          </td>
        </tr>
        <tr>
          <td>
          <a href="#" target="_blank"><li>ALMG</li></a>
          </td>
          <td>
          <a href="#" target="_blank"><li>MGS</li></a>
          </td>
        </tr>
        <tr>
          <td>
          <a href="#" target="_blank"><li>Portal de serviços</li></a></td>
          <td>
          <a href="#" target="_blank"><li>Portal do servidor</li></a></td>
        </tr>
      </table>

      </div> <!--Fecha a div links_uteis-->
    • By ShibuiFansub
      Boa tarde, tenho 18 anos e decidi criar meu primeiro blog, só por teste mesmo, acabei baixando dois template e acabei gostandos de ambos, tentei fazer uma "fusão" deles, mas meio que não consegui.
      Eu queria colocar o 'estilo de postagem' desse template: http://prntscr.com/o105rw
      Nesse daqui: http://prntscr.com/o108ad
      Download Template 1:  https://drive.google.com/file/d/1mhOCYgbwPIcO14wPwOumemBrCZR5l3fT/view
      Download Template 2:  https://drive.google.com/file/d/1QmohfY7MUZI4PTIQYkjbNRwxxWkfIflD/view
       
×

Important Information

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