Executando verificação de segurança...
1

Dúvida: JSON em string no JS

Eu estou programando um app de notas recursivo, ou seja, cada anotção possui uma lista de anotações dentro dela.

Atualmente eu to salvando os dados em localStorage em um array, onde cada item é um workspace, constituido de um nome, e um json dentro de uma string relativo a sua "arvore" de anotações.

algo assim:

[
 {
      name: "Workspace name",
      content: "...conteudo das anotações em json..."
 }
]

Eu salvei assim, com o "content" em json para evitar que o load disso fosse pesado, uma vez que ele não precisa fazer parse do "content" de cada workspace....

Mas isso realmente ajuda, ou carregar tudo junto seria melhor?
Atualmente, o content so é carregado quando vc de fato abre o workspace...

Se quiser ver o projeto este é o link do repo, porém na hora em que estou escrevendo ele ainda não foi atualizado em relação á refatoração que eu venho fazendonos ultimos dias, então pode estar um pouco bagunçado.

Carregando publicação patrocinada...
1

Não sei se entendi bem. Sua dúvida é sobre criar um arquivo para workspace? Isso, ao meu ver seria inviável... A medida que vai crescendo, seria muitos arquivos JSON, para lidar. Arquivos JSON são bem pequenos, então colocar tudo junto seria mais prático. Sobre a velocidade, eu acredito que não afetaria muito o desempenho. Digo, além de arquivos JSON serem pequenos, se for conter apenas texto, então não precisa se preocupar.

Além de tudo isso, arquivo JSON serve para se comunicar com alguma API, no seu caso, a API do navegador localStorage, então criar várias arquivos para se comunicar com a API, provavelmente daria merd@.

1

Não, o q eu quis dizer, é q os dados do app, são divididos em workspaces, e cada workspace possui uma "arvore" de notas, e pra não ter q fazer parse do json de todos os workspace eu salvei no localstorage uma lista ond ecada item possui o nome de um workspace e uma string equivalente ao seu conteúdo/arvore em JSON

EX:

// dentro de localStorage.dn_data 
[
    { // isso é um workspace
          name: "Estudos",
          content: "{ root: <arvore de notas> }"
    }
]

cada anotação no meu app, pode ter uma lista própria de sub-anotações:

{ // Card ou anotação
    checked: false,
    title: "Matemática",
    description: "Conteúdo de matemática",
    children: [ <Outras cartas> ]
}

Como essas arvores acabam acumulando diversos "nodes", eu achei melhor que vc so fizesse o parse da q vc vai de fato usar, carregando o conteúdo/content do workspace.

Um workspace é tipo uma árvore nomeada no meu app... se quiser testar pra tu entender melhor, ele ta no github pages, mas eu não testei em computador então pode ter alguns bug. Link: DeepNote