2015-02-21 4 views
-2

В основном это код для сайта обуви, где, как только страница загружается, скрипт запускается и автоматически добавляет ботинок нужного размера в корзину.Сделайте мой код JavaScript neater

skuAndSize обозначает переменную, используемую веб-сайтом для их размера обуви. значение selectIndex от 7 соответствует размеру 10.

var size_i_want = "10"; 
var how_many = 1; 

function addToCart() 
{ 
    var sizesList=document.getElementsByName("skuAndSize")[0]; 
    function setSizeValue() 
    { 
     document.getElementsByName("skuAndSize")[0].selectedIndex = 7; 
    } 
    if(sizesList != undefined) 
    { 
     setSizeValue(); 
     document.getElementsByClassName("add-to-cart")[0].click(); 
    } 
    else 
    { 
    setTimeout("addToCart()", 5); 
    } 
} 
setTimeout("addToCart()", 5); 

Есть ли способ, что я могу изменить этот код, чтобы сделать его работать быстрее? Он вводится через расширение хром, а вот файл manifest.json, хотя я не думаю, что это повлияет на скорость работы программы, но я мог бы быть неправильно:

{ 
    "name": "shoe_program", 
    "version": "1.0", 
    "manifest_version": 2, 
    "description": "", 
    "permissions": [ 
     "tabs", 
     "contentSettings" 
    ], 

    "icons": { 
     "128": "icon.png" 
    }, 
    "browser_action": { 
     "default_icon": "icon.png", 
     "default_title": "SneakerATC extension [SIZE-10]" 
    }, 
    "content_scripts": [ 
     { 
      "matches": [ 
       "http://*.nike.com/*" 
      ], 
      "js": [ 
       "testing.js" 
      ] 
     } 
    ], 
    "web_accessible_resources": [ 
     "script.js" 
    ] 
} 
+1

Почему, по вашему мнению, этот код нужно запускать быстрее? Действительно ли узкое место в этом коде? –

+0

@JeffreyBosboom Мне нужно сделать этот код быстрее, потому что я хочу, чтобы обувь была добавлена ​​в мою корзину как можно быстрее, поэтому я могу получить ее перед другими людьми. (эта программа предназначена для выпусков обуви с ограниченным тиражом) – user3150552

ответ

0

Большинство изменений, могут сделать это (при условии, что вы разместили весь код для приложения) будут давать вам очень незначительные выгоды. Наверное, ничего заметного. Однако вы можете позвонить .selectedIndex по телефону sizeList внутри вашей функции setSizeValue. Вы кэшируете document.getElementsByName("sizeAndSku") [0], но вместо использования кешированной переменной внутри вашей функции setSizeValue вы вызываете ее еще раз. Это требует повторного выполнения метода .getElementsByName.

Поскольку у вас уже есть это значение, хранящееся внутри sizeList, вы можете просто использовать sizeList[0].selectedIndex=7 внутри вашей функции setSizeValue.

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

Смежные вопросы