Можно ли написать функцию jQuery короче?

12
D
На сайте с 28.06.2008
Offline
1101
1325

Функция посылает запрос в базу и получает данные. Бывают ситуации, когда при rtype=3 данных нет, я подумал и выкрутился повторным запросом с rtype=2, но как-то громоздко получилось, может можно короче как-то?

function getFirm(view,id,select){
  var rtype=0,
      clear_id=id;
  if(!id){
    var view = 'section';
    var id = 9;
  }
  rtype=jQuery('input[name="mod-firm-rselect"]:checked').val();
    if(id == '13'||id == '14'||id == '15'){
        rtype = 2;
    }
  else if(clear_id && rtype === undefined){
      rtype = 3;
  }
  jQuery.ajax({
    'type': 'GET',
    'url': '/index.php',
    'dataType': 'json',
    'data': {
      'option': 'com_firm',
      'view': 'action',
      'format': 'raw',
      'task': view,
      'id': id,
      'select': select,
      'rating': rtype
    },
    'success': function(res){
        if(res){
            getBest(res,view);
        }
        if(res.items.length == 0){
            jQuery.ajax({
                'type': 'GET',
                'url': '/index.php',
                'dataType': 'json',
                'data': {
                    'option': 'com_firm',
                    'view': 'action',
                    'format': 'raw',
                    'task': view,
                    'id': id,
                    'select': select,
                    'rating': 2
                },
                'success': function(res){
                    if(res){
                        getBest(res,view);
                    }
                }
            });
        }
    }
  });
}


Елена П.
На сайте с 02.10.2020
Online
38
#1

eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('a A(4,1,8){b 7=0,j=1;6(!1){b 4=\'B\';b 1=9}7=c(\'C[z="E-w-x"]:y\').D();6(1==\'G\'||1==\'F\'||1==\'L\'){7=2}K 6(j&&7===J){7=3}c.i({\'l\':\'h\',\'g\':\'/d.e\',\'f\':\'k\',\'o\':{\'s\':\'t\',\'4\':\'v\',\'u\':\'q\',\'m\':4,\'1\':1,\'8\':8,\'n\':7},\'r\':a(5){6(5){p(5,4)}6(5.I.H==0){c.i({\'l\':\'h\',\'g\':\'/d.e\',\'f\':\'k\',\'o\':{\'s\':\'t\',\'4\':\'v\',\'u\':\'q\',\'m\':4,\'1\':1,\'8\':8,\'n\':2},\'r\':a(5){6(5){p(5,4)}}})}}})}',48,48,'|id|||view|res|if|rtype|select||function|var|jQuery|index|php|dataType|url|GET|ajax|clear_id|json|type|task|rating|data|getBest|raw|success|option|com_firm|format|action|firm|rselect|checked|name|getFirm|section|input|val|mod|14|13|length|items|undefined|else|15'.split('|'),0,{}))


😂😂😂  Но надо тестировать . 

yodda
На сайте с 22.03.2017
Offline
174
#2
function getFirm(e,a,i){var t=0,n=a;a||(e="section",a=9),t=jQuery('input[name="mod-firm-rselect"]:checked').val(),"13"==a||"14"==a||"15"==a?t=2:n&&void 0===t&&(t=3),jQuery.ajax({type:"GET",url:"/index.php",dataType:"json",data:{option:"com_firm",view:"action",format:"raw",task:e,id:a,select:i,rating:t},success:function(t){t&&getBest(t,e),0==t.items.length&&jQuery.ajax({type:"GET",url:"/index.php",dataType:"json",data:{option:"com_firm",view:"action",format:"raw",task:e,id:a,select:i,rating:2},success:function(t){t&&getBest(t,e)}})}})}
LEOnidUKG
На сайте с 25.11.2006
Offline
1724
#3

Посмотри в сторону: https://learn.javascript.ru/switch

Чтобы не юзать эти ifelse


но как-то громоздко получилось, может можно короче как-то?

Странный ты... людям за количество строк платят, а ты хочешь меньше. Уменьшение кода или как лучше сказать, рефакторинг кода, делаю уже потом если это нужно. Главная задача, чтобы работало т.к. весь этот код преобразовывается компилятором. Поэтому главная цель, это донести компилятору, что ты хочешь. А будет это 150 строк или 10 это не сильно важно.
Конструкция "switch"
Конструкция "switch"
  • Ilya Kantor
  • learn.javascript.ru
Конструкция заменяет собой сразу несколько . Она представляет собой более наглядный способ сравнить выражение сразу с несколькими вариантами. Синтаксис Конструкция имеет один или более блок и необязательный блок . Выглядит она так: Переменная проверяется на строгое равенство первому значению , затем второму и так далее. Если соответствие...
✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/
LEOnidUKG
На сайте с 25.11.2006
Offline
1724
#4
yodda #:

я то думал вопрос про программирование, а оказывается надо просто сделать минификацию кода через автоматический сервис!

yodda
На сайте с 22.03.2017
Offline
174
#5
LEOnidUKG #:

я то думал вопрос про программирование, а оказывается надо просто сделать минификацию кода через автоматический сервис!

Человек попросил сделать покороче.

W1
На сайте с 22.01.2021
Offline
286
#6
yodda #:

Человек попросил сделать покороче.

Ну не в этом же смысле, а в смысле  упростить конструкцию.

Мой форум - https://webinfo.guru –Там я всегда на связи
Sly32
На сайте с 29.03.2012
Offline
303
#7
Ну как минимум - убрать повторяющийся код. Но вообще, в век React/ Vue ваять вот это вот все... 
W1
На сайте с 22.01.2021
Offline
286
#8
Sly32 #:
вообще, в век React/ Vue ваять вот это вот все... 

Вообще, никакого такого века нет. Вообще, всему своё место.  Вообще, ничего такого особенного в этом коде нет, "наваянного", обычный запрос AJAX.

Sly32
На сайте с 29.03.2012
Offline
303
#9
webinfo #:

Вообще, никакого такого века нет. Вообще, всему своё место.  Вообще, ничего такого особенного в этом коде нет, "наваянного", обычный запрос AJAX.Чисто 

Чисто поучиться ajaxу - вай нот? НО чтоб такое кто-то использовал на продакшене в серьезных проектах, давно не видел

W1
На сайте с 22.01.2021
Offline
286
#10
Sly32 #:
НО чтоб такое кто-то использовал на продакшене в серьезных проектах, давно не видел

То, что Вы давно такого не видели - охотно верю. Потому что Вы варитесь в своей песочнице, откуда практически не высовываете нос. Но можете ли Вы обозначить конкретные претензии к данному коду, без вздохов и взываний  к святым для Вас фреймворкам?

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий