Cообщения от сервера клиенту в браузер по инициативе с сервера

В этом примере покажем как могут быть отправлены сообщения от сервера на сторону клиента. 

При отправке данной формы выполняется внешнее действие и по вашему идентификатору falconGuid идет отправка на все открытые вами страницы в браузере.

Внешнее действие может быть инициировано и из периодических событий, из операций таблиц и других мест. Таким образом вы оправляете данные некоторому пользователю (в данном случае себе), которые затем могут быть обработаны на принимающей странице.

Откройте несколько вкладок сайта. Нажмите кнопку. 

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

Также в примере показываем как можно обработать входящие данные с сервера через JS. 

Как реализовать отправку данных с сервера на клиента

1. Отправка запроса внешнего действия (по кнопке на форме): 

CREATE PROCEDURE [dbo].[fm_watch_sendToBroswer_saveItem]
   @username nvarchar(256), 
   @itemID int, 
   @parameters ExtendedDictionaryParameter readonly,
   @fieldtext nvarchar(256) = ''
AS
BEGIN
	declare @text nvarchar(max) = (select Value2 from @parameters where [Key]= 'text')
    declare @falconGuid nvarchar(max) = (select Value2 from @parameters where lower([Key])= 'falconGuid')
    
	-- 1 SELECT (Result, Msg)
	select 1 Result, 'Отправлено, проверьте другие открытые вкладки' Msg
    
    
select 'sendToBrowser' type, '' username, 
       @falconGuid falconGuid,
       '' url,
       'fromServer1' code,
    	'{
        	"text":"'+replace(@text, '"', '')+'",
                // любые другие данные...
        	"alert": {
         	   "text": "'+replace(@text, '"', '')+'",
                   "type": "warning",
                   "delay": 20000,
                   "hidePrev": true,
                   "title": "Заголовок"
         	},
                "audio": "/uploads/mp3/call.mp3",
                "updates": [
            	     {"control": "table", "code":"code1", "itemID": "123", "pk":"12345", "col": "col1", "value": "value1"},
                     {"control": "form", "code":"code1", "itemID": "123", "col": "col1", "value": "value1"}
                ],
                "refreshContainer": ".class1",
                "setContainerContent": { "selector": ".breadcrumbsCont ", "value": "<div class=''badge badge-success''>Изменена разметка по событию от сервера</div>", "delay": 200 }
         }' data

END

Подробнее - в документации по внешним действиям. https://falcon.web-automation.ru/docs/vneshnie-deystviya

2. Опционально, обработка в JS коллбеке: 

<script>
$(function(){
    as.signalr_fromServer1 = function(data){
       $('h1:first').html("Данный текст получен от сервера. Обработка выполнена через JS коллбек: " + data.text);
    	console.log("Полученные с сервера данные", data);
    }
});
</script>

Подробнее: https://falcon.web-automation.ru/docs/js--obrabotka-vkhodyashchikh-vyzovov-signalr

Другие модули

Редактирование одиночных полей формы в личном кабинете

Кнопка очистки формы

Цвет фона формы. Как изменить фон формы на сайте

Сообщение-уведомление на сайте вместо показа формы (NoForm). Отображение сообщения о недоступности формы

Работа с буфером обмена на сайте. Как скопировать текст в буфер обмена

Обновление содержимого страницы сайта (Refresh container). Перезагрузка части страницы

Любой вид формы на сайте - гибкая разметка формы

Выбор адреса и координат с подгрузкой из Google Maps API

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

SQL-инструмент для создания личных кабинетов на сайте

Суть подхода и история создания Falcon Space

Платформа Falcon Space

Это снижение стоимости владения

за счет меньшего количества людей для поддержки

Это быстрое внесение изменений

по ходу эксплуатации программы

Это современный интерфейс

полная адаптация под мобильные устройства