javascript – 缩短Google AppScripts中UrlFetch的执行时间
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 缩短Google AppScripts中UrlFetch的执行时间,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1782字,纯文字阅读大概需要3分钟。
内容图文
我有一个包含URL列表的电子表格.
我试图搜索一个URL是否包含特定的类,并根据响应我将在它旁边的单元格中设置0或1.
我已经创建了一个脚本并且它达到了目的,但是我遇到了执行超时错误,所以我希望有任何方法可以减少它的执行时间.
这是代码
function ulrFetch(){
var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1');
var class = ss.getRange(1, 5).getValue();
var lr = ss.getLastRow();
var urlList = ss.getRange(3, 8, lr-1).getValues();
var length = urlList.length
for (var i = 0;i<length;i++){
var url = urlList[i];
var response = UrlFetchApp.fetch(url.toString());
var result = response.getContentText();
var index = result.indexOf(class);
if (index > -1){
ss.getRange(i+3, 5).setValue('1');
}
else {
ss.getRange(i+3, 5).setValue('0');
}
}
}
提前致谢!!
解决方法:
这个修改怎么样?我认为fetchAll()可能会使用720个请求.所以我想建议使用fetchAll().此修改脚本的流程如下.
>使用urlList创建请求.
>使用fetchAll()从URL中检索值.
>创建用于放入电子表格的值.
>将创建的值设置为“E3:E”.
修改后的脚本
请修改如下.
来自:
var urlList = ss.getRange(3, 8, lr-1).getValues();
至 :
var urlList = ss.getRange(3, 8, lr - 1 - 1).getValues();
通过此修改,可以检索从第3行到最后一行的值.
和
来自:
for (var i = 0;i<length;i++){
var url = urlList[i];
var response = UrlFetchApp.fetch(url.toString());
var result = response.getContentText();
var index = result.indexOf(class);
if (index > -1){
ss.getRange(i+3, 5).setValue('1');
}
else {
ss.getRange(i+3, 5).setValue('0');
}
}
至 :
var requests = urlList.map(function(e) {return {url: e[0]}});
var res = UrlFetchApp.fetchAll(requests);
var values = res.map(function(e) {return e.getContentText().indexOf(class) > -1 ? ["1"] : ["0"]});
ss.getRange(3, 5, values.length, 1).setValues(values);
注意 :
>如果由于fetchAll()的限制而发生错误,请告诉我.我想修改脚本.
参考:
如果我误解你的问题,我很抱歉.
内容总结
以上是互联网集市为您收集整理的javascript – 缩短Google AppScripts中UrlFetch的执行时间全部内容,希望文章能够帮你解决javascript – 缩短Google AppScripts中UrlFetch的执行时间所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。