Последние сообщения

Страницы: 1 ... 8 9 [10]
91
Общий раздел / Re: OberonJS
« Последний ответ от Ivan Denisov Февраль 21, 2017, 03:05:47 pm »
Может кто-то знает метод?!

Ты гуглил? ;) Из общих соображений и для проверки правильного понимания концепций: base64 это кодировка для бинарей, перед тем как ее использовать надо текст перегнать в бинарь, чтобы текст перегнать в бинарь надо определиться в какой кодировке будет этот текст будучи в бинаре (UTF8?).
Да, много часов потратил на эти поиски. UTF8 подойдет, да.

encodeURIComponent как раз вроде перегоняет в бинарь.
http://ecmanaut.blogspot.ru/2006/07/encoding-decoding-utf8-in-javascript.html
92
Общий раздел / Re: OberonJS
« Последний ответ от vlad Февраль 21, 2017, 02:26:31 pm »
Может кто-то знает метод?!

Ты гуглил? ;) Из общих соображений и для проверки правильного понимания концепций: base64 это кодировка для бинарей, перед тем как ее использовать надо текст перегнать в бинарь, чтобы текст перегнать в бинарь надо определиться в какой кодировке будет этот текст будучи в бинаре (UTF8?).
93
Общий раздел / Re: OberonJS
« Последний ответ от Ivan Denisov Февраль 21, 2017, 12:18:23 pm »
Ох уж эти web технологии. Стоит добавить букву o или число Пи, как программы перестают нормально кодироваться в base64.

Может кто-то знает метод?!

Пока лучшее, что я нашел это вот такая функция.
function b64EncodeUnicode(str) {
    return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, function(match, p1) {
        return String.fromCharCode('0x' + p1);
    }));
}
94
Общий раздел / Re: OberonJS
« Последний ответ от Ivan Denisov Февраль 21, 2017, 09:31:04 am »
С проблемой зависания вроде разобрался, не совсем корректно передаю JS через ajax. Поэтому ++ в цикле пропал.
95
Общий раздел / Re: OberonJS
« Последний ответ от Ivan Denisov Февраль 21, 2017, 09:09:27 am »
Создал тебе issue на GitHub. А обновлять надо с Ctrl+F5, чтобы весь кэш обновился.

Фикснул. Но возможно еще будут какие-то похожие штуки вылазить - сообщай плз.
А с кэшем надо что-то делать - иначе у других пользователей такая же проблема будет.
Спасибо, обновил компилятор. Вот еще проблема есть. Не понимаю почему в режиме публикации зависает скрипт...
https://models.molpit.org/ready/52
В режиме редактирования все нормально работает при этом. И дерево нормально работает:
https://models.molpit.org/ready/51
Такое ощущение, что проблема возникает с теми модулями, где используются шрифты.

С кэшем кажется была проблема из-за такого конфига сервера:
        location ~* \.(html|jpg|jpeg|gif|png|ico|css|js)$ {
                expires       30d;
                add_header    Cache-Control public;
        }

Закомментировал пока эти инструкции.
96
Общий раздел / Re: OberonJS
« Последний ответ от vlad Февраль 20, 2017, 03:40:07 pm »
Это плохая идея, так как компилятор пол мегабайта весит :)

Ты так говоришь, как будто пол гигабайта ;) Я не специалист в Web и не знаю как такие проблемы решаются правильно с текущими технологиями, но одно из существующих/проверенных решений это добавление хэша к имени файла скрипта. Естественное это подразумевает какую-то автоматизацию сборки сайта.
97
Общий раздел / Re: OberonJS
« Последний ответ от Ivan Denisov Февраль 20, 2017, 03:10:01 pm »
Можно заголовки у страницы настроить.
<meta http-equiv="Cache-Control" content="no-cache">

Или заголовки у http-ответа указать.
Это плохая идея, так как компилятор пол мегабайта весит :)
98
Общий раздел / Re: OberonJS
« Последний ответ от akron1 Февраль 18, 2017, 09:10:20 pm »
Geniepro,
Правила O7 требуют, чтобы процедура-функция заканчивалась на "RETURN expression".
Можно так:
PROCEDURE Sin* (x: REAL): REAL;
BEGIN
  JS.do("return Math.sin(x)")
  RETURN 0.0
END Sin;

Из-за этой особенности мне тоже иногда приходится использовать фиктивный RETURN, который никогда не выполняется:
PROCEDURE [stdcall] sysfunc1*(arg1: INTEGER): INTEGER;
BEGIN
  sys.CODE("8B4508");           (* mov     eax, [ebp + 08h] *)
  sys.CODE("CD40");             (* int     40h              *)
  sys.CODE("C9");               (* leave                    *)
  sys.CODE("C20400");           (* ret     04h              *)
  RETURN 0
END sysfunc1;
99
Общий раздел / Re: OberonJS
« Последний ответ от Geniepro Февраль 18, 2017, 08:31:08 pm »
Вот такой еще вопрос.

PROCEDURE Sin* (x: REAL): REAL;
  VAR res: REAL;
BEGIN
JS.do("res = Math.sin(x)");
RETURN res
END Sin;

Возможно ли вернуть результат без создания переменной res?

А если вот так:
PROCEDURE Sin* (x: REAL): REAL;
BEGIN
JS.do("return Math.sin(x)");
END Sin;
100
Общий раздел / Re: OberonJS
« Последний ответ от Valery Solovey Февраль 18, 2017, 10:13:31 am »
Можно заголовки у страницы настроить.
<meta http-equiv="Cache-Control" content="no-cache">

Или заголовки у http-ответа указать.
Страницы: 1 ... 8 9 [10]