jc3213 / download_with_aria2

The browser extenson for aria2 download utility via JSON-RPC
GNU Lesser General Public License v2.1
60 stars 8 forks source link

2373 error #83

Closed ivysrono closed 5 months ago

ivysrono commented 5 months ago

JavaScript syntax error (Parsing as module error: Unexpected token [ at line: 75 and column: 21) (Parsing as script error: Unexpected token [ at line: 75 and column: 21)

错误: There is a JavaScript syntax error in your code, which might be related to some experimental JavaScript features that aren't an official part of the language specification and therefore not supported yet. The validation cannot continue on this file. crossbrowser.js 第 75 行,第 21 列

jc3213 commented 5 months ago

试试2374,今天事情多,没仔细测试。看到 #82 的汇报就想重写一下兼容老版本的代码,复制粘贴的时候出错了。OTL

jc3213 commented 5 months ago

最新的修改主要是为了能实时修改websocket跟http方案的使用。同时减少使用websocket的时候会新建多个websocket实例(后台的进度汇报啥的也会额外占用一个实例)

现在只要new Aria2(scheme, host, secret)就会新建一个WebSocket实例,不管是用ws还是http都是。并且即使走事件监听,来做实时任务状态切换,也只需要一个实例了。

这个做法利好单进程应用。而且在非ws模式下,除了New DownloadDetected Images两个页面会新建WebSocket实例外,其他时候跟过去一样,Popup一个,Background一个。但是切换到ws方法后,数量不会额外增加了。过去每发送一条消息就会新建一个WS实例开始连接,发送信息,获取结果,中断连接。

唯一的问题就是我为了快速套用造成了不少小毛病,很多时候一个人测不出来。然后就是一个实例在发送信息跟接收后台反馈的时候。例如send(message),后台会获得2个信息,一个是message本身的response,一个是aria2 json-rpc本身的event——通过监听event实现的实时更新任务状态,并且减少了对waiting,stopped两个队列的随时刷新需求。但是我代码只写了后面,会在接受到前面的回复时出错。

当然http模式没这个问题。