【ToS】ついに実装!ThrottleScriptの正体とは

NO IMAGE

前回の記事でも触れましたが、ThrottleScriptという関数が5月31日のアップデートで実装されました。
今回はこの関数が一体何なのか、どういう使い方が出来るのか紹介していこうと思います。※1

ThrottleScriptって?

このThrottleScriptという関数は、jQuery界隈でも有名なあのスロットルです。

Throttleとは

まず、Throttleという単語の意味について考えましょう。
Throttleは、名詞で言えば絞り弁、動詞で言えば(速度、燃料など)スロットルで調整する抑制するなどの意味を持っています。
これらから読み取れるのは、何かを抑制し調整するといった意味合いとして使われていそうなことが想像できますね。

ThrottleScriptが持つ意味

それでは、次にThrottleScriptという名前だけに注目して考えてみましょう。
ThrottleScriptはThrottle scriptと分割でき、スクリプトを抑制し調整するとも解釈できますね。
この記事では、この解釈で話を進めていきます。

スクリプトを抑制し調整するとは、一体スクリプトの何を抑制するのでしょうか。
スクリプトは、実行(評価)されてこそ意味があります。
しかし、短時間に実行され過ぎるとどうなるでしょうか?
コンピュータによっては、処理しきれないかもしれません。
下手するとフリーズしてしまうかもしれません。

ここまで来ればもう分かりましたね?
下手な誘導ではありますが、ThrottleScriptは、ある期間におけるスクリプトの実行回数を一度のみにする関数なのです。
この関数を経由してスクリプトを実行することで、スクリプトの実行のされ過ぎを抑制し、負荷が軽減することを期待できます。

例えば、ThrottleScript(UPDATE_GUILDINFO, 1) と書けば、これが実行されてから1秒間の間にどれだけ呼ばれでも、UPDATE_GUILDINFOが実行されるのは1秒後の1回のみです。
そう、この機能がついにTree of Saviorに実装されたのです!

なんと喜ばしいことか。
よっ、IMC!
いいぞ、IMC!

引数に任意の値を渡すことが出来るの?

前回の記事でも軽く触れていますが、現状だと引数に値を渡すことはできません。
今後のアップデートでできるようになるかもしれませんけどね。

最後に

思ったよりも優秀な開発者がIMCにも入ってきたのではないのか、と推測しています。
それでも、まだThrottleScriptが利用されている箇所は少ないですし、ThrottleScriptが利用される箇所があるのはアーキテクチャに問題がある場合が多いです。
それでもこうした細かい気遣いが出てきてくれたのは良いことだと思います。

今後、ToSがより良い方向に進んでくれることを祈っています。
良いToSライフを

※1 今後のアップデートで挙動が変わると思うので注意してください