← Back
β˜†

Mini-Charts β€” Анализ дублирования ΠΈ оптимизация (12 May 2026)

Π€Π°ΠΉΠ»: /home/app/futures-screener/app/mini-charts.js β€” 6706 строк, 134 Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠŸΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»: ~650 строк экономии (6706 -> ~6050)

3 Ρ‚ΠΎΡ‡ΠΊΠΈ создания Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ²

  1. Mini-charts (grid) β€” createChartInstance() строка 1142
  2. Modal (Π΄Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ) β€” openCoinModal() строка 3386
  3. Multi-chart slots β€” createSlotChart() строка 6202

Π”ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ (~500-600 строк)

A. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π³Ρ€Π°Ρ„ΠΈΠΊΠ° (3 ΠΊΠΎΠΏΠΈΠΈ, ~90 строк)

Π‘Ρ‚Ρ€ΠΎΠΊΠΈ 1152-1177, 3386-3416, 6202-6225 β€” ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹ΠΉ createChart + addMainSeries + volume. Π Π°Π·Π½ΠΈΡ†Π°: fontSize (9/default/10), borderColor, minimumWidth, scaleMargins.

B. OHLCV Legend (2 ΠΊΠΎΠΏΠΈΠΈ, ~36 строк)

Π‘Ρ‚Ρ€ΠΎΠΊΠΈ 3433-3451 (modal) ΠΈ 6233-6248 (slot) β€” дословно ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ΄.

C. Trendlines (3 ΠΊΠΎΠΏΠΈΠΈ), D. Keltner (3 ΠΊΠΎΠΏΠΈΠΈ), E. Regression (3 ΠΊΠΎΠΏΠΈΠΈ), F. Density (3 ΠΊΠΎΠΏΠΈΠΈ), G. S/R Levels (3 ΠΊΠΎΠΏΠΈΠΈ)

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ overlay Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ 3 Ρ€Π°Π·Π° с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ отличиями (opacity, lineWidth). Π₯ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€: applyOI() строка 3708 β€” ΡƒΠΆΠ΅ ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ chartObj.

H. Drawing tools attach (2 ΠΊΠΎΠΏΠΈΠΈ)

Π‘Ρ‚Ρ€ΠΎΠΊΠΈ 1181-1196 (mini) ΠΈ 6250-6271 (slot).

Memory Leaks

Event listeners Π½Π° mini-chart (БРЕДНЯЯ ΡΠ΅Ρ€ΡŒΡ‘Π·Π½ΠΎΡΡ‚ΡŒ)

createChartInstance() добавляСт mousedown/touchstart ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ scroll-in Π‘Π•Π— ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ _listenersAttached. Π§Π΅Ρ€Π΅Π· 10 scroll in/out = 10 listeners. Π’ modal Π·Π°Ρ‰ΠΈΡ‚Π° Π΅ΡΡ‚ΡŒ (_drawHandlersAttached), Π² mini β€” Π½Π΅Ρ‚.

extractVolume ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ destroy

Π‘Ρ‚Ρ€ΠΎΠΊΠ° 708 β€” пСрСсоздаёт volume массив ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ scroll-out. Π›ΡƒΡ‡ΡˆΠ΅ ΠΊΠ΅ΡˆΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅.

gapless-scale.js β€” ΠΌΡ‘Ρ€Ρ‚Π²Ρ‹ΠΉ ΠΊΠΎΠ΄ (227 строк)

ЗагруТаСтся Π½ΠΎ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ (Π±Π°Π³ исправлСн ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ gapless).

План ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ (6 Ρ„Π°Π·)

Π€Π°Π·Π° 1: Chart Factory (ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ Π’Π«Π‘ΠžΠšΠ˜Π™)

function createChartWithVolume(chartEl, { size, prec, minMove, watermark }) { ... }
// size: 'mini' | 'modal' | 'slot'

ЗамСняСт 3 Ρ‚ΠΎΡ‡ΠΊΠΈ создания. Экономия: ~60 строк.

Π€Π°Π·Π° 2: Unified Overlay Applicator (ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ Π’Π«Π‘ΠžΠšΠ˜Π™)

function applyOverlay(chartContext, type, candleData, sym, tf) { ... }
// type: 'keltner' | 'regression' | 'trendlines' | 'levels' | 'density'

По ΠΎΠ±Ρ€Π°Π·Ρ†Ρƒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ applyOI(). ЗамСняСт 18 -> 6 Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. Экономия: ~300 строк.

Π€Π°Π·Π° 3: OHLCV Legend Factory

Экономия: ~20 строк.

Π€Π°Π·Π° 4: Fix Event Listener Leaks (ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ ΠšΠ Π˜Π’Π˜Π§Π•Π‘ΠšΠ˜Π™)

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ guard chartEl._listenersAttached Π² createChartInstance().

Π€Π°Π·Π° 5: Drawing Attach Factory

Экономия: ~30 строк.

Π€Π°Π·Π° 6: Π£Π΄Π°Π»ΠΈΡ‚ΡŒ gapless-scale.js

Π£Π±Ρ€Π°Ρ‚ΡŒ ΠΈΠ· HTML. 227 строк ΠΌΡ‘Ρ€Ρ‚Π²ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.

ΠŸΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚

Π€Π°Π·Π° 4 (fix leaks) > Π€Π°Π·Π° 1-2 (factories) > Π€Π°Π·Π° 3,5,6 (космСтика)

πŸ“œ Git History

18461a4brain: auto-sync 2026-05-12 00:458 weeks ago
Show last diff
Loading...