Eroare la incarcare json
Discutii si intrebari legate de scripturi si functii JavaScript, jQuery si Ajax, cod JavaScript in general.
-
ddorel
- Mesaje:16
Eroare la incarcare json
Bună Marius
Cum rezolv să imi încarce tot fișierul .json
eoroare la
Cod: Selectaţi tot
//fetch(endpoint)
//.then(blob => blob.json())
//.then(data => cities.push(...data));
fisierul url json este mare, am pus un fisier json mai mic cu acceasi structura si merge
Cod: Selectaţi tot
<!doctype html>
<html lang="en">
<head></head>
<body>
<div class="search-form">
<input type="text" class="search" placeholder="Oraș sau județ">
<ul class="suggestions">
</ul>
</div>
<script>
const endpoint ='raw.githubusercontent.com/dr5hn/countries-states-cities-database/master/cities.json';
const cities = [];
fetch(endpoint)
.then(blob => blob.json())
.then(data => cities.push(...data));
function findMatches(wordToMatch, cities) {
return cities.filter(place => {
const regex = new RegExp(wordToMatch, 'gi');
return place.name.match(regex) || place.state_name.match(regex);
});
}
function displayMatches() {
const matchArray = findMatches(this.value, cities).slice(0, 5);
const html = matchArray.map(place => {
const regex = new RegExp(this.value, 'gi');
const cityName = place.name.replace(regex, `<span class="hl">${this.value}</span>`);
const stateName = place.state_name.replace(regex, `<span class="hl">${this.value}</span>`);
return `<li>
<span class="name">${cityName}, ${place.state_name}</span>
</li>`;
}).join('');
suggestions.innerHTML = html;
}
const searchInput = document.querySelector('.search');
const suggestions = document.querySelector('.suggestions');
searchInput.addEventListener('change', displayMatches);
searchInput.addEventListener('keyup', displayMatches);
</script>
</body>
</html>
MarPlo
Salut,
Daca acelasi script merge cu fisierul json pe care l-ai pus; problema ar putea fi o eroare de sintaxa in fisierul json care nu functioneaza, sau marimea prea mare a acelui fisier. Dar nu stiu care ar fi rezolvarea in caz ca fisierul e foarte mare.
Vezi poate gasesti ceva pe internet la cautare:
javascript load and parse big large file
ddorel
asta ii fisierul
Cod: Selectaţi tot
const endpoint ='raw.githubusercontent.com/dr5hn/countries-states-cities-database/master/cities.json';
are 1959232 linii
MarPlo
Fisierul json de la acea adresa are peste 50 MB, e cam mare pentru preluare si procesare direct in pagina (client side) cu javascript.
A) Indicat ar fi sa citesti si sa prelucrezi acel fisier pe server, cu php sau nodejs (ca o baza de date in json); iar cu javascript (cu ajax) preiei de pe server doar ce vrei sa afisezi in pagina.
B) O alta modalitate (dar ne indicata) daca vrei doar client side, ar fi sa arhivezi fisierul json in format ZIP (asa ar avea cam 4 MB), sa incarci in pagina fisierul ZIP, apoi cu o librarie de functii javascript (de exemplu zip.js) dezarhivezi fisierul si il transformi inapoi in obiect json.
Gasesti pe internet informatii si cazuri similare la cautare:
javascript unpack zip file
Oricum, avand in vedere marimea codului json, chiar si cu aceasta modalitate scriptul var rula greu in pagina.
Cel mai indicat e procesarea pe server si preluarea in pagina, cu ajax, doar a detelor care trebuie afisate (e mai performant si rapid).
Subiecte similare
- Setare timp de incarcare a site-ului
JavaScript - jQuery - Ajax
Primul mesaj
Am o imaine de incarcare a site-ului în format GIF, dar nu apare fiindca pagina web se încarca în 0,01 secunde.
Este posibil să setez un timp de...
Ultimul mesaj
Iata un exemplu de preloader cu jQuery, cu metoda delay() (2 sec = 2000), adaugata la evenimentul 'load'.
<style>
.loading {
position:...
- Escapare ghilimele duble in sir JSON
JavaScript - jQuery - Ajax
Primul mesaj
Încerc să transform in obiect un șir JSON 'Hello” test ' care conține ghilimele care au escapate deja cu \.
JSON.parse('{ x : Hello \ test }')...
Ultimul mesaj
Trebuie sa escapezi backslash-ul \, astfel sa ai doua backslashes \\
let obj = JSON.parse('{ x : Hello \\ test }')
console.log(obj)
- Lungime obiect JSON in JavaScript
JavaScript - jQuery - Ajax
Primul mesaj
Am convertit un tabel din baze de date într-un obiect JSON.
Aceasta este, în esență, un array bidimensional, fiecare înregistrare fiind pe cate un...
Ultimul mesaj
Poti sa folosesti Object.keys pentru a obține lista de chei din obiect ca un array, apoi obții cu 'length' lungimea din el:...
- Eroare la un formular cu PHP
PHP - MySQL - XML
Primul mesaj
Salut. Am si eu o problema. In primul rand nu stiu daca am postat unde trebuie si am cautat pe forum ceva asemanator cu problema mea insa nu am...
Ultimul mesaj
Am rezolvat. Multumesc oricum pentru timpul acordat. Am folosit phpmailer pt ca cei de unde am webhostul asa lucreaza. Multumesc inca o data !
- Eroare de variabila in php 8
PHP - MySQL - XML
Primul mesaj
Salut
Am trecut la php 8 si imi da eroarea asta
Warning: Undefined variable $page in G:\site\htdocs\system\site\page.php on line 16
in...
Ultimul mesaj
Imi mai da eroarea asta
Warning: Undefined array key message
iar eu am asa
$message=$_POST ;
Edit,
rezolvat cu
$message='';
if (isset($_POST...
- Eroare curs valutar
Scripturi de pe site
Primul mesaj
Salutare, folosesc de ceva vreme scriptul pentru curs valutar, care e foarte ok.
Recent la o validare a aparut eroarea
Uncaught SyntaxError:...
Ultimul mesaj
Nu e nici o problema.
Din ce am inteles, eroarea apare doar in validare, de la rularea codului care trebuie sa acceseze prin ajax un alt fisier.