Optymalizacja javascriptu

0

Cześć, tworzę mój pierwszy, poważniejszy projekt w node i js. Można powiedzieć, że w zasadzie skończyłem już całość, ale z racji tego, że jest to mój pierwszy projekt popełniłem duży błąd. Mianowicie cały skrypt serwerowy node-a jak i skrypty js-a składają się z powielonych funkcji różniących się tylko nazwami zmiennych. Czy znalazłby się ktoś kto mógłby mi wytłumaczyć, dać jakąś wskazówkę, jak zoptymalizować coś takiego, miałem w planie napisanie 1 uniwersalnej funkcji i wywoływanie jej z odpowiednimi parametrami, ale problemem jest jak podmienić nazwy zmiennych w różnych wywołaniach.

Kodu niestety nie mogę udostępnić. Z góry dziękuję za pomoc

0

A co ma nazwa zmiennej w wywołaniu do nazwy zmiennej w definicji funkcji?

Wymyśl i pokaż jakiś kod obrazujący problem.

0

Funkcja, z danych pobranych z bazy, tworzy zmienną Table, która później jest przekazywana do klienta i tam po sparsowaniu prezentowana w formie tabeli. Problem jest taki, że dla każdej "zakładki" przekazuję inne zmienne (TableBar1, TableBar2).

function funcUniversal() {
//Połączenie z bazą
var json;
Table = '{';
//data zwracane z bazy
json = JSON.stringify(data);
Table = '{"dane1":' + json ;//+ ' }';
json = JSON.stringify(data);
Table += ',"dane2":' + json + '}';
Table += '}';
return data;
};

0

Mianowicie cały skrypt serwerowy node-a jak i skrypty js-a składają się z powielonych funkcji różniących się tylko nazwami zmiennych.

w sensie programowałeś metodą copy pastego? Z tego co pamiętam to Webstorm ma znośny sposób wykrywania duplikatów.

Table += ',"dane2":' + json + '}';
Table += '}';
return data;

Czemu wszystkiego nie robisz na JSON.stringify, tylko bawisz się w ręczne budowanie JSONa? Przecież możesz coś takiego zrobić

JSON.stringify({dane1: data, dane2: otherData})

itp.

0

przy optymalizacji nie zapomnij o minifikacji :)

0

Chyba nadal nie czaję coś tam wymyślił, masz coś takiego:

var Table1, Table2;

function funcTable1() {
  var data = getFromDB();
  Table1 = { dane1: data }
  return data;
};

function funcTable2() {
  var data = getFromDB();
  Table2 = { dane1: data }
  return data;
};

// gdzieś tam dalej:
app
  .get('/table1', function (req, res) {
    res.json(Table1)
  })
  .get('/table2', function (req, res) {
    res.json(Table2)
  })

??

1

No to wywal te globale i operuj na parametrach i wartościach zwracanych, coś w stylu:

function getData(someParams) {
  var data = getFromDB(someParams);
  return data;
};

function prepareData(data) {
  return { dane: data }
}

function sendResult (req, res) {
  const data = getData(/* some params */)
  const result = prepareData(data)
  res.json(result)
}

// gdzieś tam dalej:
app
  .get('/table1', sendResult)
  .get('/table1', sendResult)

PS
Na temat odpowiadaj w postach.

0

Otóż to, ogromne dzięki Maciej!

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