Tworzenie wielu obiektów w JS, generowanie w PHP

Odpowiedz Nowy wątek
2016-09-25 15:08
login_ek
0

Cześć
Na stronie we front-endzie mam w JSie kilkadziesiąt linijek w stylu:
array['key'] = new Object(param1, param2, param3, param4, [and, even, array, here]); Przy czym key i parametry to literały, są podane bezpośrednio.
To bardzo tymczasowe i zamierzam to przerobić. Jest oczywiście wiele możliwości, pośród nich dynamiczne generowanie kodu za pomocą PHP na podstawie łatwego do edycji XML'a lub wrzucenie jakiejś struktury w div'a o stylu display: none; i parsowanie go za pomocą JS'a. Jednak taka struktura to dosyć dużo znaczników w HTML'u i więcej do przesłania w porównaniu do wpisania bezpośrednio w JS'a lub nawet zapytywania dodatkowo o JSON'a/XML'a.
Co byłoby bardziej eleganckie? Czy może polecacie coś jeszcze innego? Te kilkadziesiąt linijek będzie najprawdopodobniej zmieniać się nie raz, więc taki XML byłby bardzo spoko. Można by pobierać to za pomocą AJAX'a, ale to dodatkowe zapytanie.

Przy małym rozmiarze wrzucenie tego w HTML'a wydaje się być chyba najrozsądniejsze. Czy jest jakiś atrybut SEO, który mówiłby, że dany fragment HTML'a to tylko dane konfiguracyjne i żeby go nie parsowały roboty? Wtedy powinno ładnie śmigać.

Pozostało 580 znaków

2016-09-25 15:31
0
$data = [[1,2,3]['test' => [4,5,6]]; // php
<div class="application" data-json="<?= htmlspecialchars(json_encode($data)); ?>"></div> // php && html
var data = $('.application').first().data('json'); // js
console.log(data[1]['test']);

Pozostało 580 znaków

2016-09-25 15:56
0

new Object(param1, param2, param3, param4, [and, even, array, here]);

Co to Twoim zdaniem ma robić?

Może w ogóle opisz po ludzku co i po co chcesz zrobić a nie jak chcesz to zrobić, bo te xmle, pehapy, niewidoczne divy i dziwne konstrukcje w JS są niezrozumiałe dla mnie.

edytowany 1x, ostatnio: Maciej Cąderek, 2016-09-25 15:57

Pozostało 580 znaków

2016-09-25 17:11
login_ek
0

@Markuz To mniej więcej to, co miałem na myśli poprzez niewidoczne divy, tylko tutaj w jednym atrybucie. Czy taki atrybut na na przykład 5000 znaków byłby ok?
Nadal, czy jest jakiś atrybut, który mówiłby, że dany element na stronie nie należy zbytnio do jej bezpośredniej zawartości?

@Maciej Cąderek Ta linijka ma przypisywać tablicy array pod indeksem 'key' nowy obiekt z JSowej pseudoklasy Object, do której konstruktora przesyłane są parametry. Co w tym niejasnego?
W aplikacji raczej jest to potrzebne, ten Object to pewnego rodzaju klasa zawierająca dane do routowania. W aplikacji jest kilkanaście grup inputów typu ratio. W zależności od tego, jakie ratio zostanie wybrane przez usera (lub zmienione na inne ratio), zmienia się obiekt-model w kodzie i odpowiednie pola tabeli są kolorowane.
Jednak przydzielenie odpowiednich pól w tabeli odpowiednim inputom jest dosyć nieregularne, przez co wymaga takiej tablicy obiektów do routowania. Można by tutaj użyć atrybutu data-* dla każdego pola w tablicy, jednak kod byłby zapewne ładniej zorganizowany, jeżeli trzymamy to w obiektach JS'a i na nich operujemy, wykorzystując je jako modele, a w tabeli tylko to, co trzeba wyświetlić/pokolorować/wypisać.

Pozostało 580 znaków

2016-09-25 17:13
login_ek
0

A XML'e to początkowy format, który będzie często zmieniany, a który zawiera i dane odnośnie tego, jak wygląda ta tablica i tego, jak wyglądają te obiekty do routowania.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0