ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ Ρ Π²Π°Ρ Π΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΠΏΡΠΎΡΡΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΡΠ°Π±Π»ΠΈΡΠ° DT ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ajax, ΠΊΠΎΠ³Π΄Π° server = TRUE
(ΡΠ΅ΠΆΠΈΠΌ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ°).
library(shiny)
ui <- fluidPage(DT::DTOutput('tbl'))
server <- function(input, output, session) {
output$tbl <- DT::renderDT(iris, server = TRUE)
}
runApp(list(ui = ui, server = server))
ΠΠΎΠ³Π΄Π° Π²ΠΊΠ»ΡΡΠ΅Π½Π° Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ (Π»ΡΠ±ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ), Π²Ρ ΠΎΡΠΊΡΡΠ²Π°Π΅ΡΠ΅ Π±ΡΠ°ΡΠ·Π΅Ρ ΠΈ Π²Ρ ΠΎΠ΄ΠΈΡΠ΅ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΈ Π²ΡΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π°ΠΆΠΌΠΈΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡ ΡΡΡΠ°Π½ΠΈΡΡ ΠΏΠΎΠ΄ ΡΠ°Π±Π»ΠΈΡΠ΅ΠΉ). ΠΠ΄Π½Π°ΠΊΠΎ ΠΏΠΎΡΠ»Π΅ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΠΎΡ (30 ΠΌΠΈΠ½ΡΡ ΠΈΠ»ΠΈ 1 ΡΠ°Ρ) Π½Π°ΠΆΠΌΠΈΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡ ΡΡΡΠ°Π½ΠΈΡΡ, ΠΈ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅, ΡΡΠΎ DT ΠΆΠ°Π»ΡΠ΅ΡΡΡ Π½Π° ΠΎΡΠΈΠ±ΠΊΡ ajax. Π‘ΠΏΠΎΡΠΎΠ± ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΡΡ: ΠΎΠ±Π½ΠΎΠ²ΠΈΡΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ ΠΎΡΠΊΡΠΎΠΉΡΠ΅ Π½ΠΎΠ²ΠΎΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Ρ Shinyproxy ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΠΏΠΎΠ²ΡΠΎΡΠ½ΡΠΉ Π²Ρ ΠΎΠ΄. ΠΠΎ ΡΡΠΎ ΡΠΈΠ»ΡΠ½ΠΎ ΡΠ±ΠΈΠ²Π°Π΅Ρ Ρ ΡΠΎΠ»ΠΊΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ.
ΠΡΠΎ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ ΠΏΠΎΡΠ»Π΅ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΠΎΡ Shinyproxy ΡΡΠ΅Π±ΡΠ΅Ρ, ΡΡΠΎΠ±Ρ Π²Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ Π²ΠΎΡΠ»ΠΈ Π² ΡΠΈΡΡΠ΅ΠΌΡ Π΄Π»Ρ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ, Π½ΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ Π΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ. Π£ ΡΡΠΎΠ³ΠΎ Π΅ΡΡΡ ΠΏΠΎΠ±ΠΎΡΠ½ΡΠΉ ΡΡΡΠ΅ΠΊΡ, Π·Π°ΠΊΠ»ΡΡΠ°ΡΡΠΈΠΉΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ AJAX, ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΡΠ°Π΅ΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π±ΡΠ΄Π΅Ρ ΠΎΡΠΊΠ»ΠΎΠ½Π΅Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Shinyproxy ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅Ρ ΡΡΠΎ ΠΊΠ°ΠΊ Π½ΠΎΠ²ΠΎΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ...
Π― ΡΡΠΈΡΠ°Ρ, ΡΡΠΎ ΡΠΏΠΎΡΠΎΠ± ΡΠ΅ΡΠΈΡΡ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ -
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ.
@shrektan Π£ ΠΌΠ΅Π½Ρ Π±ΡΠ»ΠΈ ΠΏΠΎΡ
ΠΎΠΆΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΈ OpenAnalytics
ΠΏΠΎΠΌΠΎΠ³ ΠΌΠ½Π΅ ΡΡΠΎ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ:
ΠΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ ΡΠ°ΠΉΠΌ-Π°ΡΡ undertow
(ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ 30 ΠΌΠΈΠ½ΡΡ).
server:
servlet.session.timeout: 3600
ΠΠΈΠΆΠ΅ ΡΠΊΠ°Π·Π°Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² ΡΠ΅ΠΊΡΠ½Π΄Π°Ρ
- ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 0
Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ Π½Π΅Ρ ΡΠ°ΠΉΠΌ-Π°ΡΡΠ°.
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ, ΠΠΈΠ»Π°Π½
@dylancis Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° ΠΎΠ±Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡΡΡ! ΠΡΠ΅Π½ΠΈΠ»!
ΠΠ΄Π½Π°ΠΊΠΎ Ρ ΠΎΡΡΠ°Π²Π»Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΎΡΠΊΡΡΡΠΎΠΉ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ IMHO, Π»ΡΡΡΠ΅ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΠ³Π΄Π° Π²ΡΠ΅ΠΌΡ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ ΡΠ΅Π°Π½ΡΠ°.
@dylancis ΠΡΡΠ°ΡΠΈ, Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅ ΠΏΠΎ ΡΠ΅ΠΌΠ΅, Π²Ρ ΠΏΡΠΎΠ±ΠΎΠ²Π°Π»ΠΈ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΡΠΈΡ Shinyproxy Ρ ΡΠ°Π±Π»ΠΈΡΠ°ΠΌΠΈ DT? Π― Π½Π΅ ΠΈΠ·ΡΡΠ°Π» ΠΏΡΠΈΡΠΈΠ½Ρ, Π½ΠΎ Π²ΠΈΠΆΡ ΠΎΡΠΈΠ±ΠΊΠΈ AJAX, Π² ΠΊΠΎΡΠΎΡΡΡ Π³ΠΎΠ²ΠΎΡΠΈΡΡΡ, ΡΡΠΎ ΠΌΠ΅ΡΠΎΠ΄Ρ POST Π½Π΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΡΠΈΠ½ΡΡΡ.
>
@dylancis ΠΡΡΠ°ΡΠΈ, Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅ ΠΏΠΎ ΡΠ΅ΠΌΠ΅, Π²Ρ ΠΏΡΠΎΠ±ΠΎΠ²Π°Π»ΠΈ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΡΠΈΡ Shinyproxy Ρ ΡΠ°Π±Π»ΠΈΡΠ°ΠΌΠΈ DT? Π― Π½Π΅ ΠΈΠ·ΡΡΠ°Π» ΠΏΡΠΈΡΠΈΠ½Ρ, Π½ΠΎ Π²ΠΈΠΆΡ ΠΎΡΠΈΠ±ΠΊΠΈ AJAX, Π² ΠΊΠΎΡΠΎΡΡΡ Π³ΠΎΠ²ΠΎΡΠΈΡΡΡ, ΡΡΠΎ ΠΌΠ΅ΡΠΎΠ΄Ρ POST Π½Π΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΡΠΈΠ½ΡΡΡ.
ΡΠΏΡ - Π½Π΅Ρ Ρ Π΅ΡΠ΅ Π½Π΅ Π΄Π΅Π»Π°Π».
Π’Π°ΠΊΠΆΠ΅ Π΄Π»Ρ ΠΌΠ΅Π½Ρ - Ρ ΠΏΠ΅ΡΠ΅ΡΠ΅Π» Ρ 2.1 Π½Π° 2.2, ΠΈ ΡΠ΅ΠΏΠ΅ΡΡ Π½ΠΈ ΠΎΠ΄ΠΈΠ½ renderDataTable
ΡΠ°Π±ΠΎΡΠ°Π΅Ρ. ΠΠ½ΠΎΠ³ΠΈΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ AJAX ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»ΡΡΡ ΠΌΠ΅Π½Ρ Π½Π° ΡΡΡ ΡΡΡΠ°Π½ΠΈΡΡ http://datatables.net/tn/7
Π― ΡΡΠΈΡΠ°Ρ, ΡΡΠΎ ΡΡΠΎ ΠΎΡΠΈΠ±ΠΊΠ° ... ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, ΠΎΡΠΊΡΠΎΠΉΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°, ΠΈ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΠΎΡΠ²Π΅Ρ Π½Π° Π·Π°ΠΏΡΠΎΡ AJAX - ΠΌΠ΅ΡΠΎΠ΄Ρ POST Π½Π΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΡΠΈΠ½ΡΡΡ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ, Π½ΠΎ GET Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ...
ΠΡΠΈΠ²Π΅Ρ, @shrektan , Π²Ρ ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°Π»ΠΈ ΡΡΠΎΡ Π°Π±ΡΠΈΠΊΠΎΡΠΎΠ²ΡΠΉ Π²ΠΎΠΏΡΠΎΡ ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρ DT? ΠΡ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΠΌ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅, Π½ΠΎ Π½Π°ΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ ΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Π΄Π°Π½Π½ΡΡ .
@dylancis Π’ΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ
ΠΠ°ΠΊ ΡΠΏΠΎΠΌΠΈΠ½Π°Π» @dylancis , ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ server.servlet.session.timeout
ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
ΠΠΎ Ρ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ Π±ΡΠ»ΠΎ Π±Ρ Π»ΡΡΡΠ΅, Π΅ΡΠ»ΠΈ Π±Ρ ΡΠ°ΠΉΠΌ-Π°ΡΡ ΡΠ΅Π°Π½ΡΠ° ΠΎΡΠΊΠ»Π°Π΄ΡΠ²Π°Π»ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ, ΠΏΠΎΠΊΠ° Π΅ΡΡΡ ΠΎΡΠΊΡΡΡΡΠΉ ΠΊΠ°Π½Π°Π» Π²Π΅Π±-ΡΠΎΠΊΠ΅ΡΠ° (ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΡΠ΅ΡΠ΄ΡΠ΅Π±ΠΈΠ΅Π½ΠΈΠ΅ ΠΈ, ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠ°Π±ΠΎΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°).
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΡΡΠΎΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ ΠΊΠ°ΡΠ°Π΅ΡΡΡ ΠΈΡΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΊΠ° Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΡΠ΅Π°Π½ΡΠ°, Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π±ΡΠ» ΠΏΠΎΠ»ΡΡΠ΅Π½ 401 (Π½Π΅Π°Π²ΡΠΎΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠΉ) ΠΎΡΠ²Π΅Ρ. Π Π΅ΡΡ ΠΈΠ΄Π΅Ρ Π½Π΅ ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ΅ Ρ Ajax POST, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ 405-ΠΌ ΠΎΡΠ²Π΅ΡΠ°ΠΌ (ΠΌΠ΅ΡΠΎΠ΄ Π·Π°ΠΏΡΠ΅ΡΠ΅Π½).
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
@shrektan Π£ ΠΌΠ΅Π½Ρ Π±ΡΠ»ΠΈ ΠΏΠΎΡ ΠΎΠΆΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΈ
OpenAnalytics
ΠΏΠΎΠΌΠΎΠ³ ΠΌΠ½Π΅ ΡΡΠΎ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ:ΠΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ ΡΠ°ΠΉΠΌ-Π°ΡΡ
undertow
(ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ 30 ΠΌΠΈΠ½ΡΡ).ΠΠΈΠΆΠ΅ ΡΠΊΠ°Π·Π°Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² ΡΠ΅ΠΊΡΠ½Π΄Π°Ρ - ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
0
Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ Π½Π΅Ρ ΡΠ°ΠΉΠΌ-Π°ΡΡΠ°.Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ, ΠΠΈΠ»Π°Π½