基本上这是鞋类网站的代码,只要页面加载,脚本就会运行并自动将适当大小的鞋子添加到购物车中。
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);
我有什么方法可以修改此代码以使其运行更快?它是通过chrome扩展输入的,这里是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"
]
}
答案 0 :(得分:0)
可能对此做出的大多数更改(假设您已发布应用程序的所有代码)将为您带来非常小的收益。可能没什么值得注意的。但是,您可以在.selectedIndex
功能内的sizeList
上致电setSizeValue
。您缓存document.getElementsByName("sizeAndSku") [0]
,而不是使用setSizeValue
函数中的缓存变量,而是再次调用它。这需要再次执行方法.getElementsByName
。
由于您已在sizeList
内缓存了该值,因此您可以在sizeList[0].selectedIndex=7
函数中使用setSizeValue
。
你不会获得任何真正有益的速度提升,但至少你少了一个函数调用。我认为在任何实际应用中它都不会产生任何影响,但至少应该给你一些东西。