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": "
Изменена разметка по событию от сервера
", "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

 

 

 

Насколько полезна эта возможность?

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

Форма генерации счета

Файлы и документы 10.01.2025

Платформа Falcon Space

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

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

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

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

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

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

Сайт использует Cookie. Правила конфиденциальности OK