triggerClientEvent быстрее и имеет более высокий приоритет.
Я проводил тесты, пробовал вызывать сначала triggerClientEvent, затем setElementData и наоборот, потом сравнивал кто быстрее.
-- Server
addEvent( "onPlayerReady", true );
addEventHandler( "onPlayerReady", root,
function()
local sValue = ( "*" ):rep( math.random( 5000000, 10000000 ) );
setElementData( source, "Test", sValue );
triggerClientEvent( source, "onClientPlayerRecived", source, sValue );
end
);
-- Client
addEvent( "onClientPlayerRecived", true );
local iTick = getTickCount();
addEventHandler( "onClientResourceStart", resourceRoot,
function()
triggerServerEvent( "onPlayerReady", localPlayer );
end
);
addEventHandler( "onClientPlayerRecived", root,
function()
outputChatBox( "Time: " .. tostring( getTickCount() - iTick ) .. "ms" );
end
);
addEventHandler( "onClientElementDataChange", root,
function( sData )
if sData == "Test" then
outputChatBox( "Time2: " .. tostring( getTickCount() - iTick ) .. "ms" );
end
end
);
--[[
При использовании triggerClientEvent.
Time: 6843ms
При использовании setElementData
Time2: 8626ms
]]