Misskey: JavaScript-free "lite" client

Created on 20 Nov 2018  ·  8Comments  ·  Source: syuilo/misskey

Issue

Most browsers have javascript. However, some users, especially power users, prefer to disable it. It's absolutely unessential to get a javascript-free client, however it's something that I feel could and probably should be added.

Proposition

Making a "lite" client using older rendering methods by making the server parse the page directly. I would be willing to get to work on this if the proposition is accepted as I currently have the time to currently work on such a project. I suppose it's a pretty large undertaking.

I have no idea if this was already proposed, i can't read japanese lol

💬Discussion 🖥️Client 🗿Wontfix

Most helpful comment

Mastodon互換であれMisskeyオリジナルであれ、APIを利用するにはJavaScriptで呼び出すことが必要なので、JavaScript-freeを達成できない。

JavaScriptを利用しないWebクライアントとはつまり、Propositionに書かれている通り完全なサーバーサイドレンダリングのクライアントだ。

これはMisskeyクライアントのSPA思想にもちろん逆行する。SPAでないMisskeyは、もはやMisskeyではない(しゅいろがサーバーサイドレンダリングに戻すというのなら別だが)。
つまり、この提案を実装するなら、一からFediverse実装を作り直した方が良いと思う。

更に言えば、「クライアントからJavaScriptを排除し完全なサーバーサイドクライアントにすれば、それが"lite"である」と言い切ることはできないと思う。

Webサイトにおいて"lite"を実現するには、一般的に、通信量と描画のためのブラウザの計算量を削減しサーバーの応答速度を改良する。サーバーの応答速度の改良にはあまり苦労することはないだろう。しかし、クライアントサイドでは問題が多い。多く移動を行えば、HTMLをやり取りするために通信量が増えるだろう。Misskeyのスクリプトサイズは最近分割され、またサイズも削減されたため、通信量は減っている。ブラウザはURLを移動する度にページを一から描き直す。SPAはその重い描画更新をなくして速やかに表示を更新するという考え方を持つ。もしMisskeyのリッチなUIを大幅に簡素にするならそれはMisskeyではないし、多くの"重い"と感じる挙動はCSSやvueの問題であり、JavaScript自体が悪いわけではない。

今のWeb標準の範囲で言えば、現代的なWebを体験するためには――ことMisskeyのようなサービスに関しては――JavaScriptによるサポートが不可欠だ。JavaScriptには確かに悪いところもあるが、それ以上のメリットがあるし、規格や実装には改良が重ねられている。今必要なのは、JavaScriptを無効にする人に対応してJavaScript-freeクライアントを作成することではなく、そのような人達に対しJavaScriptを有効にさせるよう働きかけることだ。

English version by Google Translation

All 8 comments

@gutfuckllc Do you have any idea of how to implement a client which won't use JavaScript? I'm interested in that.

@acid-chicken
思いつくのはこんな方法ですね

  • formタグでsubmitとかaタグでページ遷移をしてタイムラインを再取得(ページ全体再取得)
  • formタグのsubmitでノートを作成、ページ遷移

UXはかなり乏しくなりそうです。
リアルタイム性に関しては全く無くなってしまうと思います。。

Not sure how I feel about that as misskey basically is Javascript only. Maybe when the mastodon compatibility API is complete you could use other front ends by that API?

@incognico Yes, but the Mastodon Compatible API won't provide the all of the Misskey features. If we'll make another lite, full compatible with Misskey client, we'll have to use Misskey API.

Mastodon互換であれMisskeyオリジナルであれ、APIを利用するにはJavaScriptで呼び出すことが必要なので、JavaScript-freeを達成できない。

JavaScriptを利用しないWebクライアントとはつまり、Propositionに書かれている通り完全なサーバーサイドレンダリングのクライアントだ。

これはMisskeyクライアントのSPA思想にもちろん逆行する。SPAでないMisskeyは、もはやMisskeyではない(しゅいろがサーバーサイドレンダリングに戻すというのなら別だが)。
つまり、この提案を実装するなら、一からFediverse実装を作り直した方が良いと思う。

更に言えば、「クライアントからJavaScriptを排除し完全なサーバーサイドクライアントにすれば、それが"lite"である」と言い切ることはできないと思う。

Webサイトにおいて"lite"を実現するには、一般的に、通信量と描画のためのブラウザの計算量を削減しサーバーの応答速度を改良する。サーバーの応答速度の改良にはあまり苦労することはないだろう。しかし、クライアントサイドでは問題が多い。多く移動を行えば、HTMLをやり取りするために通信量が増えるだろう。Misskeyのスクリプトサイズは最近分割され、またサイズも削減されたため、通信量は減っている。ブラウザはURLを移動する度にページを一から描き直す。SPAはその重い描画更新をなくして速やかに表示を更新するという考え方を持つ。もしMisskeyのリッチなUIを大幅に簡素にするならそれはMisskeyではないし、多くの"重い"と感じる挙動はCSSやvueの問題であり、JavaScript自体が悪いわけではない。

今のWeb標準の範囲で言えば、現代的なWebを体験するためには――ことMisskeyのようなサービスに関しては――JavaScriptによるサポートが不可欠だ。JavaScriptには確かに悪いところもあるが、それ以上のメリットがあるし、規格や実装には改良が重ねられている。今必要なのは、JavaScriptを無効にする人に対応してJavaScript-freeクライアントを作成することではなく、そのような人達に対しJavaScriptを有効にさせるよう働きかけることだ。

English version by Google Translation

表示されるページはサーバサイドでレンダリングする必要があります。
現在のMisskeyはSPAなので、それはほとんど使われていない方法です。
故に、実装のコストも高いわけです。(メンテナンスのコストもまた)

English version by Google Translation

@gutfuckllc Thank you for your proposition. I understand your idea, but it's not something we should support officially.

However, some users, especially power users, prefer to disable it.

I don't think we should spend time on supporting those users. Even if you implement it, we should review, test and maintain your code. We have a lot of other tasks to do.

I suppose it's a pretty large undertaking.

As you guess, it's too complex. If you truly want to implement it, please create a new client as a third-party application.

I have no idea if this was already proposed, i can't read japanese lol

lol


This comment is co-authored by @AyaMorisawa

Thanks anyway :)

Was this page helpful?
0 / 5 - 0 ratings

Related issues

ibrokemypie picture ibrokemypie  ·  3Comments

tamaina picture tamaina  ·  3Comments

CookieRamen picture CookieRamen  ·  3Comments

no-boot-device picture no-boot-device  ·  3Comments

tamaina picture tamaina  ·  3Comments