powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Динамическое создание javascript'a
15 сообщений из 15, страница 1 из 1
Динамическое создание javascript'a
    #38336609
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!

что хочется сделать :

чтобы можно было динамически создавать и отдавать пользователю скрипт !

есть идея :

в javascripte - есть набор переменных которые должны меняться из админки сайта :

Хочется чтобы на стороне сервера этот скрипт создавался автоматически и в него вносились изменения.

Как сделано сейчас :

в jsp страницу включается статический скрипт "/js/script.js
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <script type="text/javascript" src="/js/script.js?version=1"></script>
        <title>JSP Page</title>
    </head>
    <body>



содержит переменную и набор функций :
Код: javascript
1.
2.
3.
4.
5.
6.
// стоимость игры
var min_costs = 
{
    'one': 40,
    'two': 30
};



а потом в теле в jsp в секции

идет вставка из бизнес бина - строки с новыми значениями :
Код: java
1.
2.
3.
<script>
   getNewPrice();
</script> 




где getNewPrice() - возвращает строку var min_costs = { 'one': 44, 'two': 33 };


Вопрос как в java сделать так чтобы по обращению к ресурсу - /js/script.js

генерить этот скрипт автоматически с верными данными ?

либо каждый раз - либо создавать его в структуре путей сервера и отдавать его клиенту ... а по изменению переписывать (наверное это более правильный путь ?)


как побороть проблему кеширования старой версии скрипта на клиенте ?
...
Рейтинг: 0 / 0
Динамическое создание javascript'a
    #38336633
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Первое что пришло в голову это Сервлет :
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet(name = "NewServlet", urlPatterns = {"/js/script.js"})
public class NewServlet extends HttpServlet {
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("application/x-javascript;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {
            out.println("var min_costs = { 'one': 44, 'two': 33 };");
        } finally {            
            out.close();
        }
    }
}
...
Рейтинг: 0 / 0
Динамическое создание javascript'a
    #38336655
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Atum1Первое что пришло в голову это Сервлет :
На очереди JSP?
...
Рейтинг: 0 / 0
Динамическое создание javascript'a
    #38336759
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczAtum1Первое что пришло в голову это Сервлет :
На очереди JSP?

с мапленное на "/js/script.js ?


идея с файлом на диске плоха тем что в момент перезаписи файла - на клиента может попасть кусок этого файла и работать не будет.

так что остается решение с jsp ?
...
Рейтинг: 0 / 0
Динамическое создание javascript'a
    #38336943
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Atum1,
зачем вам писать на 2-х ЯП сразу?
- JS на клиенте
- Java (JSP) на сервере.
Не понял идеи поменять их местами)
...
Рейтинг: 0 / 0
Динамическое создание javascript'a
    #38336977
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Atum1,
зачем вам писать на 2-х ЯП сразу?
- JS на клиенте
- Java (JSP) на сервере.
Не понял идеи поменять их местами)

Пример : у вас есть достаточно богатый клиент на js - со своим хранилищем данных и реализованный как паттерн mvc

так вот в модели данных js скрипта есть некоторые константы - из примера
Код: javascript
1.
2.
3.
4.
5.
var min_costs = 
{
    'one': 40,
    'two': 30
}



На самом деле это не константы - а переменные, которые могут меняться в зависимости от состояния рынка или политической ситуации.

меняются они ручками в админке такого сайта.


скрипты для сайта пишут javascript программисты .они и хардкодят эти данные.

а эти данные должны меняться достаточно оперативно. -

решение описано в начале через jsp //

но мне интересно есть и еще какие-то решения ?


К примеру эти данные можно легко подгружать через ajax - оформить пару rest web севрисов ...

и возвращать эти данные по запросу - так же очень гибкое и правильное решение.
...
Рейтинг: 0 / 0
Динамическое создание javascript'a
    #38336985
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Atum1К примеру эти данные можно легко подгружать через ajax - оформить пару rest web севрисов ...
и возвращать эти данные по запросу - так же очень гибкое и правильное решение.
Достаточно вспомнить про кеширование в браузере.
...
Рейтинг: 0 / 0
Динамическое создание javascript'a
    #38337048
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Atum1,авторНа самом деле это не константы - а переменные, которые могут меняться в зависимости от состояния рынка или политической ситуации.

меняются они ручками в админке такого сайта.


скрипты для сайта пишут javascript программисты .они и хардкодят эти данные.

нет уж.
Распредели все ПЕРЕМЕННЫЕ )) по уровням:
- константы на уровне кода (никогда не меняются)
- константы в коде в спец модуле
- константы при деплое и настройке админом
- константы-переменные при загрузке onLoad скрипта JS
И приведи конкретный пример
...
Рейтинг: 0 / 0
Динамическое создание javascript'a
    #38337051
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczAtum1К примеру эти данные можно легко подгружать через ajax - оформить пару rest web севрисов ...
и возвращать эти данные по запросу - так же очень гибкое и правильное решение.
Достаточно вспомнить про кеширование в браузере.
+1
Ослик воспринимает JS файл тоже как константу)
...
Рейтинг: 0 / 0
Динамическое создание javascript'a
    #38337611
risk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А чего не сделать на яве сервис, который возвращает Json, а уже его дергать яваскриптом ?
...
Рейтинг: 0 / 0
Динамическое создание javascript'a
    #38337614
risk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Blazkowiczпропущено...

Достаточно вспомнить про кеширование в браузере.
+1
Ослик воспринимает JS файл тоже как константу)

А что это никак нельзя изменить ? Я помню лепили что-то в конце к линке на яваскрипт, что бы линка всегда перегенеривалась соотвественно не будет кеша....
...
Рейтинг: 0 / 0
Динамическое создание javascript'a
    #38337643
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
risk,
кеш сделан для пользователя.
А вы лепили для программистов забыв о нём.
Парадокс.
riskА чего не сделать на яве сервис, который возвращает Json, а уже его дергать яваскриптом ?
AJAX делает то же самое. Получай хоть список городов.
...
Рейтинг: 0 / 0
Динамическое создание javascript'a
    #38337654
risk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123risk,
кеш сделан для пользователя.

На сколько я понимаю для экономии трафика и экономии на репарсинге нового яваскрипта?
...
Рейтинг: 0 / 0
Динамическое создание javascript'a
    #38337741
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
risk,
трафик
...
Рейтинг: 0 / 0
Динамическое создание javascript'a
    #38338795
ivanra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Могу для примера привести кусок такого скрипта (в данном случае JSF), заполняющего некий исходный массив данными из бина:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
	<script type="text/javascript">
...
	var borrowers = {
		<c:forEach items="#{requestBean.borrowers}" var="item" varStatus="status">
			<c:if test="#{!status.first}">,</c:if>
			"0x#{item.personID}":["#{item.lastName}","#{item.firstName}","#{item.middleName}",'<h:outputText value="#{item.birthDate}"/>']
		</c:forEach>
		};
...
	</script>


Как видно из разметки это скрипт не из отдельного js файла, а отрисовываемый вместе со страницей.
На выходе получаем что-то типа
Код: javascript
1.
2.
3.
4.
5.
	var borrowers = {
			"0x000000000000437D":["Иванов","Иван","Петрович",'11.11.1971'],
			"0x00000000000043AC":["Иванова","Ольга","Сергеевна",'21.03.1996'],
			... и т.д
		};
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Динамическое создание javascript'a
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]