Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Java Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 16 17 18 19 20 21 22 23 [24] 25   вперед  Ctrl
 Re: Что такое серверный рендеринг  [new]
mayton
Member

Откуда: loopback
Сообщений: 46600
hVostt
судя по этой табличке https://github.com/jreijn/spring-comparing-template-engines

самые быстрые это JSP с усами, кто-то их использует на практике?

Не... Велосити и Фримейкер - они low-level. К HTML имеют далёкое отношение.
Просто как формирователи отчотов в любом виде. PostScript, RTF.

Хотя может у меня инфа устарела.
14 апр 20, 15:15    [22116024]     Ответить | Цитировать Сообщить модератору
 Re: Что такое серверный рендеринг  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4841
hVostt,
Серверный рендеринг практически не используется.
Все отдали в JS и студентам верстальщикам.
14 апр 20, 15:29    [22116038]     Ответить | Цитировать Сообщить модератору
 Re: Что такое серверный рендеринг  [new]
lleming
Member

Откуда:
Сообщений: 1721
THYMELEAF
14 апр 20, 15:31    [22116039]     Ответить | Цитировать Сообщить модератору
 Re: Что такое серверный рендеринг  [new]
mayton
Member

Откуда: loopback
Сообщений: 46600
Те-же яйца. Хвосту КМК нужен HtmlBuilder.
14 апр 20, 15:38    [22116041]     Ответить | Цитировать Сообщить модератору
 Re: Что такое серверный рендеринг  [new]
mad_nazgul
Member

Откуда:
Сообщений: 5298
mayton
mad_nazgul, а в Котлине можно анонимные сущности использовать?

Тоесть вместо этого
val data: Array<Table> = arrayOf(
    Table(1L, 0L, 1, "1_1"),                                  //  0
    Table(2L, 0L, 2, "1_2"),                                  //  1


Сделать нечто вроде tuples:

    (1L, 0L, 1, "1_1")
    (2L, 0L, 2, "1_2")


Т.к. данные должны быть из БД, то выделил строки в "Сущности"

А так

data class Thingy(val a: String, val b: String, val c: String, val d: String)
val t = Thingy("A", "B", "C", "D")
val (aa, bb, cc, dd) = t


Стырено отсюда
14 апр 20, 15:57    [22116053]     Ответить | Цитировать Сообщить модератору
 Re: Что такое серверный рендеринг  [new]
mad_nazgul
Member

Откуда:
Сообщений: 5298
hVostt
какой в java движок для серверной генерации html нынче популярен?


thymeleaf?! :-)

Сообщение было отредактировано: 14 апр 20, 15:59
14 апр 20, 15:58    [22116055]     Ответить | Цитировать Сообщить модератору
 Re: Что такое серверный рендеринг  [new]
mayton
Member

Откуда: loopback
Сообщений: 46600
Ну тут была типизация.

data class Table (
    val id: Long = 0L,
    val idParent: Long = 0L,
    val order: Int = 0,
    val name: String = ""
)


А тут мы все заменили на строки.

data class Thingy(val a: String, val b: String, val c: String, val d: String)
14 апр 20, 16:00    [22116059]     Ответить | Цитировать Сообщить модератору
 Re: Что такое серверный рендеринг  [new]
hVostt
Member

Откуда:
Сообщений: 17493
mad_nazgul
hVostt
какой в java движок для серверной генерации html нынче популярен?


thymeleaf?! :-)


Так и понял )

PetroNotC Sharp
hVostt,
Серверный рендеринг практически не используется.
Все отдали в JS и студентам верстальщикам.


Да ладна, прям не используется ))
14 апр 20, 17:51    [22116139]     Ответить | Цитировать Сообщить модератору
 Re: Что такое серверный рендеринг  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 17738
PetroNotC Sharp
Серверный рендеринг практически не используется.
Все отдали в JS и студентам верстальщикам.
я уже давал ссылку можешь поискать
14 апр 20, 18:02    [22116147]     Ответить | Цитировать Сообщить модератору
 Re: Что такое серверный рендеринг  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 17738
mad_nazgul,

это всё прекрасно, но нужна java....
14 апр 20, 18:05    [22116149]     Ответить | Цитировать Сообщить модератору
 Re: Что такое серверный рендеринг  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 17738
PetroNotC Sharp
Дай ссыль на вопрос задаваемый раньше.
Хорош флудить и всех обвинять.
22113561
22105216

Сообщение было отредактировано: 14 апр 20, 18:14
14 апр 20, 18:08    [22116152]     Ответить | Цитировать Сообщить модератору
 Re: Что такое серверный рендеринг  [new]
Дмитрий Мух
Member

Откуда: Зеленоград
Сообщений: 3472
hVostt
mad_nazgul
пропущено...


thymeleaf?! :-)


Так и понял )

PetroNotC Sharp
hVostt,
Серверный рендеринг практически не используется.
Все отдали в JS и студентам верстальщикам.


Да ладна, прям не используется ))

Конечно, особенно на этом сайте не используется
14 апр 20, 18:09    [22116153]     Ответить | Цитировать Сообщить модератору
 Re: Что такое серверный рендеринг  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4841
hVostt

Да ладна, прям не используется ))

Дык поиск по java есть. Поищи.
14 апр 20, 18:48    [22116191]     Ответить | Цитировать Сообщить модератору
 Re: Что такое серверный рендеринг  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4841
вадя
PetroNotC Sharp
Дай ссыль на вопрос задаваемый раньше.
Хорош флудить и всех обвинять.
22113561
22105216

Я в этой ссылке спросил - что за невменяемый работодатель просит чистую java?
))))
14 апр 20, 18:52    [22116194]     Ответить | Цитировать Сообщить модератору
 Re: Что такое серверный рендеринг  [new]
hVostt
Member

Откуда:
Сообщений: 17493
вадя
mad_nazgul,

это всё прекрасно, но нужна java....


нужен стартовый проджект, куда логику написать, в моём случае это не быстро, на джаве писал хз когда
14 апр 20, 18:57    [22116204]     Ответить | Цитировать Сообщить модератору
 Re: Что такое серверный рендеринг  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 17738
PetroNotC Sharp
Я в этой ссылке спросил - что за невменяемый работодатель просит чистую java?
ты опять в сторону отводишь -
вопрос не в работодателе - а том как решить данную задачу на java
уже есть решение - на js, на sql, на котлине
14 апр 20, 19:01    [22116208]     Ответить | Цитировать Сообщить модератору
 Re: Что такое серверный рендеринг  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 17738
hVostt
жен стартовый проджект, куда логику написать, в моём случае это не быстро, на джаве писал хз когда
в таком виде потянет?
+
import java.sql.CallableStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Locale;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.apache.tomcat.jdbc.pool.ConnectionPool;
import org.apache.tomcat.jdbc.pool.DataSource;
import org.apache.tomcat.jdbc.pool.PoolProperties;

public class NewMain {

    static final String BASE = "jdbc:mysql://localhost:3306/............";
    static final String BASE_PASSWORD = "1234";
    static final String BASE_LOGIN = "root";
    public static org.apache.tomcat.jdbc.pool.DataSource dataSource;
    static ResultSet rs;
    static ConnectionPool pool;
    CallableStatement proc;

    public static void main(String[] args) {
        setdataSource();
        String f;

        long time1;
        long time;
        f = String.format("{call %s()}", "page1_xxx010 ");
        time = System.nanoTime();
        try (CallableStatement proc = pool.getConnection().prepareCall(f);) {
            rs = proc.executeQuery();
            time1 = System.nanoTime();
            rs.next();
            rs.getString(1);
            System.out.printf(Locale.ROOT, "время запроса page1_xxx010 \t%,d\n\n", time1 - time);
        } catch (SQLException ex) {
            ex.printStackTrace();
        }

    }
    private static void setdataSource() {

        PoolProperties pp = new PoolProperties();
        pp.setDriverClassName("com.mysql.cj.jdbc.Driver");
        pp.setUrl(BASE);
        pp.setUsername(BASE_LOGIN);
        pp.setPassword(BASE_PASSWORD);
        pp.setInitialSize(10);
        pp.setMaxActive(10);
        pp.setMaxIdle(10);
        pp.setMinIdle(10);
        pp.setMaxWait(10000);
        pp.setRemoveAbandoned(true);
        pp.setRemoveAbandonedTimeout(100);
        pp.setSuspectTimeout(40);
        pp.setTimeBetweenEvictionRunsMillis(1000);
        pp.setMinEvictableIdleTimeMillis(2000);
        dataSource = new DataSource();
        dataSource.setPoolProperties(pp);
        try {
            pool = dataSource.createPool();
        } catch (SQLException ex) {
            Logger.getLogger(NewMain.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
}

вызов хранимки заменить на любое удобное
14 апр 20, 19:11    [22116214]     Ответить | Цитировать Сообщить модератору
 Re: Что такое серверный рендеринг  [new]
Дмитрий Мух
Member

Откуда: Зеленоград
Сообщений: 3472
hVostt
вадя
mad_nazgul,

это всё прекрасно, но нужна java....


нужен стартовый проджект, куда логику написать, в моём случае это не быстро, на джаве писал хз когда

я без образа и пальцем уже не пошевельну :)
14 апр 20, 19:30    [22116236]     Ответить | Цитировать Сообщить модератору
 Re: Что такое серверный рендеринг  [new]
mayton
Member

Откуда: loopback
Сообщений: 46600
        time = System.nanoTime();
        try (CallableStatement proc = pool.getConnection().prepareCall(f);) {
            rs = proc.executeQuery();
            time1 = System.nanoTime();
            rs.next();
            rs.getString(1);
            System.out.printf(Locale.ROOT, "время запроса page1_xxx010 \t%,d\n\n", time1 - time);

Это неправильный бенчмарк. Java - машина - холодная. И за 1 итерацию main она не прогреется.

Тоесть данный код будет заведомо хуже чем код любого сервлета который спокойно прогреется до бинарника.
14 апр 20, 19:34    [22116241]     Ответить | Цитировать Сообщить модератору
 Re: Что такое серверный рендеринг  [new]
mayton
Member

Откуда: loopback
Сообщений: 46600
    private static void setdataSource() {
}

Это напоминает мне мой код в 1999 году когда я только взял в руки этот язык.
Так-же писал примерно.
14 апр 20, 19:36    [22116242]     Ответить | Цитировать Сообщить модератору
 Re: Что такое серверный рендеринг  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 17738
mayton
Это неправильный бенчмарк. Java - машина - холодная. И за 1 итерацию main она не прогреется.

Тоесть данный код будет заведомо хуже чем код любого сервлета который спокойно прогреется до бинарника.
да я это прекрасно знаю . это оценочный вариант - там есть "пустое" обращение к базе и два "холодных" для 2 вариантов. на данном этапе - просто оценочные значения - просто понять на сколько "холодные" будут отличаться.
в приведённом примере - от java только 2 строки
 rs.next();
 rs.getString(1);

это "мой" вариант - в котором работает sql
14 апр 20, 19:45    [22116253]     Ответить | Цитировать Сообщить модератору
 Re: Что такое серверный рендеринг  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 17738
mayton
Это напоминает мне мой код в 1999 году когда я только взял в руки этот язык.
ещё раз - это только для проверки работоспособности.
не вникая ни во что.
14 апр 20, 19:47    [22116255]     Ответить | Цитировать Сообщить модератору
 Re: Что такое серверный рендеринг  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 17738
Дмитрий Мух
я без образа и пальцем уже не пошевельну :)
не хочешь - не суйся
14 апр 20, 19:48    [22116257]     Ответить | Цитировать Сообщить модератору
 Re: Что такое серверный рендеринг  [new]
mayton
Member

Откуда: loopback
Сообщений: 46600
Сделай метод Маин отдельно. Он работает 1 раз.

И метод process() и вызови его 1000 раз. Как JMH. Даст бох между 1 и 1000 гдето машина решит его
перекомпилировать.

Покури лог c опцией -XX:+PrintCompilation. Там должно мелькнуть событие.
14 апр 20, 19:48    [22116258]     Ответить | Цитировать Сообщить модератору
 Re: Что такое серверный рендеринг  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 17738
mayton
И метод process() и вызови его 1000 раз. Как JMH. Даст бох между 1 и 1000 гдето машина решит его
перекомпилировать.

Покури лог c опцией -XX:+PrintCompilation. Там должно мелькнуть событие.

было видео про рефлексию - там тоже гоняли циклы, но после 5000 наступали тормоза, необъяснимые...
14 апр 20, 19:52    [22116262]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 16 17 18 19 20 21 22 23 [24] 25   вперед  Ctrl
Все форумы / Java Ответить