Автоматическое обновление сайта Alfresco Share

Как автоматически обновить общий сайт? Теперь, когда кто-то публикует ответ в общем обсуждении, пользователь должен обновить страницу, чтобы просмотреть ответ. Как сделать автоматическое обновление страницы?


person samnaction    schedule 04.03.2014    source источник


Ответы (3)


В Share нет предварительно определенного компонента автоматического обновления. Вам придется кодировать его самостоятельно.

  1. Вариант 1: Автоматически опрашивать сервер каждые x секунд с помощью JavaScript, например. используйте YAHOO.lang.later(...)

  2. Вариант 2. Напишите собственную политику Alfresco для запуска событий, отправленных сервером, + используйте такое событие в общем ресурсе.

  3. Вариант 3. Внедрение веб-сокетов

Все параметры потребуют глубоких знаний JavaScript в браузере, особенно пользовательских компонентов и утилит YUI и Alfresco Share. Варианты 2 и 3 дополнительно потребуют глубоких знаний Java и Java Foundation API Alfresco.

person alfrescian    schedule 04.03.2014
comment
Могу ли я использовать java-скрипт и установить правило на сайте? - person samnaction; 04.03.2014
comment
вы можете использовать правило javascript для запуска SSE в варианте 2 или для emit() в варианте 3. Но оба случая не тривиальны и только JavaScript, поскольку вы добавите возможности SSE/websocket в Alfresco... - person alfrescian; 04.03.2014
comment
Я думаю, что location.reload(); сделает перезагрузку страницы обряд? - person samnaction; 04.03.2014
comment
да, есть несколько вариантов перезагрузки текущей страницы: -› например. stackoverflow.com/questions/18967532/ Думал, что вы хотели бы обновить страницу для каждого пользователя, если есть новый ответ... - person alfrescian; 04.03.2014
comment
Я создал скрипт, но как привязать скрипт к сайту? Я пробовал manage rule, но не могу использовать этот скрипт - person samnaction; 04.03.2014
comment
правило - неправильный слой. Правило выполняется на уровне репо. Вам придется изменить JS, который запускается в браузере -› ​​один из js-файлов в share\components\discussions. Но, пожалуйста, заранее ознакомьтесь с настройками и подкомпонентами Share/SURF. НЕ рекомендуется просто изменять исходный файл - person alfrescian; 04.03.2014
comment
Но проблема в том, что если перезагрузить всю страницу, это будет действительно раздражать? Мне нужно перезагрузить конкретную область для перезагрузки - person samnaction; 06.03.2014
comment
Вы знакомы с JavaScript, YUI и XHR в целом? - person alfrescian; 06.03.2014
comment
Нет, я новичок, и у меня есть базовые знания только в C и CPP. - person samnaction; 06.03.2014
comment
Можете ли вы сказать мне, в каких файлах js мне нужно изменить - person samnaction; 12.03.2014
comment
не знаю - один из js в share\components\discussions- - person alfrescian; 12.03.2014
comment
не знаю, потому что я еще не разобрался в вашей проблеме в деталях... Какую версию Alfresco вы используете? Какую страницу (URL) вы используете для добавления ответа? Какие данные должны быть загружены, но не загружены? Вы уверены, что речь идет о дискуссионном компоненте сайта? Обычно ответ виден и загружается после его добавления - для текущего пользователя другим пользователям необходимо обновить. - person alfrescian; 12.03.2014
comment
Я использую 4.2e CE. URL-адрес выглядит так: http://127.0.0.1:8080/share/page/site/sample/discussions-topicview?topicId=post-1394454079256_9467&listViewLinkBack=true Мне нужно регулярно обновлять эту страницу. - person samnaction; 12.03.2014
comment
Тем не менее, я не понимаю этого, и я застрял на этом. Мне нужно что-то вроде этого youtube.com/watch?v=cxFhviithUs Смотреть с 11: с 00 до 12:00 на видео. Когда пользователь вводит ответ, он обновляется для каждого пользователя. - person samnaction; 13.03.2014

Я редактировал toolbar.get.html в tomcat\webapps\share\WEB-INF\classes\alfresco\site-webscripts\org\alfresco\components\discussions. Я добавил следующий метатег

<meta http-equiv="Refresh" content="100">. Это работает.

person samnaction    schedule 13.03.2014
comment
@alfrescian это хорошо? - person samnaction; 13.03.2014

Я сделал таймер опроса для обновления определенных данных вместо перезагрузки всей страницы.

http://code.google.com/p/alfresco-presence/source/browse/share/source/web/presence/components/head/polling-timer.js

Однако это больше работы.

person Rasmus Melgaard    schedule 15.03.2014
comment
Я развернул его, но не могу найти в инструментах администратора - person samnaction; 17.03.2014
comment
Однако я нахожу его в share/page/modules/deploy - person samnaction; 17.03.2014
comment
Это просто реализация javascript, вам нужно использовать его для данных, которые вам нужно обновить. В модуле присутствия он получает обновленный статус присутствия участников сайта и, следовательно, не перезагружает всю страницу... - person Rasmus Melgaard; 17.03.2014