Как логировать клики на определенных элементах в системе

Задача: сделать фиксацию в базе кликов по определенным элементам в системе. 

1. Разметка кнопки: 

<a href="#" class="as-logger" data-text="11" data-header="2222" data-itemid="3333">Ссылка</a>

2. В глобальном JS создаем обработчик клика для кнопки (используем механизм Request JS): 

 $(document).delegate('.as-logger', 'click', function (e) {
            var el = $(this);
            if (el.attr('data-prevent') === "1") e.preventDefault();

            as.sys.request("web", "logger", {
                data: {
					text: cont.attr('data-text') || "",
					header: cont.attr('data-header') || "",
					itemID: cont.attr('data-itemID') || ""
				},
                onSuccess: function (data) {
                    // if (data.result && data.data && data.data.length) { }
                }
            });
        });

3. В SQL процедуре для механизма Request JS обрабатываем данные по клику: 

create PROCEDURE [dbo].[request_web_logger]
	@parameters DictionaryParameter READONLY,
	@username nvarchar(32)
AS
BEGIN
	declare @text nvarchar(256) = '',  @header nvarchar(256) = '',  @itemID nvarchar(256) = ''
	select @text = Value from @parameters where [Key]='text'
	select @header = Value from @parameters where [Key]='header'
	select @itemID = Value from @parameters where lower([Key])='itemid'

	exec as_trace_warn ('logger', @header, try_cast(@itemID as int), @text, @username)

     -- SELECT 1 Msg, Result
	select 'OK' Msg, 1 Result

    -- SELECT 2 Основные данные в виде произвольной таблицы
    --select top 10 * from as_trace

    -- SELECT 3 Внешние действия

END

Таким образом, данные будут сохраняться в таблице as_trace. 

Falcon Space - функциональная веб-платформа разработки на узком стеке MS SQL/Bootstrap. Вводная по Falcon Space
Насколько полезной была статья?

Google поиск по нашей документации

Выгода от использования Falcon Space

В 2-3 раза экономнее и быстрее, чем заказная разработка
Более гибкая, чем коробочные решения и облачные сервисы
Используйте готовые решения и изменяйте под свои потребности
Нужна бесплатная консультация?
Планируете делать веб-проект?
Сайт использует Cookie. Правила конфиденциальности OK