RegisterNUICallback instead of AddEventHandler, improves performance

Co-Authored-By: SomeGuyX <someguyx@users.noreply.github.com>
This commit is contained in:
ElPumpo
2018-10-17 20:35:30 +02:00
parent 39c71ce4a9
commit fb6f429394
3 changed files with 22 additions and 16 deletions
+1 -1
View File
@@ -2,7 +2,7 @@ resource_manifest_version '44febabe-d386-4d18-afbe-5e627f4af937'
description 'ESX Menu Default'
version '1.0.3'
version '1.0.4'
client_scripts {
'@es_extended/client/wrapper.lua',
+9 -3
View File
@@ -43,23 +43,27 @@ Citizen.CreateThread(function()
ESX.UI.Menu.RegisterType(MenuType, openMenu, closeMenu)
AddEventHandler('esx_menu_default:message:menu_submit', function(data)
RegisterNUICallback('menu_submit', function(data, cb)
local menu = ESX.UI.Menu.GetOpened(MenuType, data._namespace, data._name)
if menu.submit ~= nil then
menu.submit(data, menu)
end
cb('OK')
end)
AddEventHandler('esx_menu_default:message:menu_cancel', function(data)
RegisterNUICallback('menu_cancel', function(data, cb)
local menu = ESX.UI.Menu.GetOpened(MenuType, data._namespace, data._name)
if menu.cancel ~= nil then
menu.cancel(data, menu)
end
cb('OK')
end)
AddEventHandler('esx_menu_default:message:menu_change', function(data)
RegisterNUICallback('menu_change', function(data, cb)
local menu = ESX.UI.Menu.GetOpened(MenuType, data._namespace, data._name)
for i=1, #data.elements, 1 do
@@ -76,6 +80,8 @@ Citizen.CreateThread(function()
if menu.change ~= nil then
menu.change(data, menu)
end
cb('OK')
end)
Citizen.CreateThread(function()
+12 -12
View File
@@ -79,7 +79,7 @@
};
ESX_MENU.render = function(){
ESX_MENU.render = function() {
let menuContainer = document.getElementById('menus');
let focused = ESX_MENU.getFocused();
@@ -93,7 +93,7 @@
let menuData = ESX_MENU.opened[namespace][name];
let view = JSON.parse(JSON.stringify(menuData));
for(let i=0; i<menuData.elements.length; i++){
for(let i=0; i<menuData.elements.length; i++) {
let element = view.elements[i];
@@ -132,32 +132,32 @@
};
ESX_MENU.submit = function(namespace, name, data){
SendMessage(ESX_MENU.ResourceName, 'menu_submit', {
ESX_MENU.submit = function(namespace, name, data) {
$.post('http://' + ESX_MENU.ResourceName + '/menu_submit', JSON.stringify({
_namespace: namespace,
_name : name,
current : data,
elements : ESX_MENU.opened[namespace][name].elements
});
}));
};
ESX_MENU.cancel = function(namespace, name){
SendMessage(ESX_MENU.ResourceName, 'menu_cancel', {
ESX_MENU.cancel = function(namespace, name) {
$.post('http://' + ESX_MENU.ResourceName + '/menu_cancel', JSON.stringify({
_namespace: namespace,
_name : name
});
}));
};
ESX_MENU.change = function(namespace, name, data){
SendMessage(ESX_MENU.ResourceName, 'menu_change', {
ESX_MENU.change = function(namespace, name, data) {
$.post('http://' + ESX_MENU.ResourceName + '/menu_change', JSON.stringify({
_namespace: namespace,
_name : name,
current : data,
elements : ESX_MENU.opened[namespace][name].elements
});
}));
};
ESX_MENU.getFocused = function(){
ESX_MENU.getFocused = function() {
return ESX_MENU.focus[ESX_MENU.focus.length - 1];
};