- 1. Content-Dispositionのデコードに見るリーダブルコードとは
- 2. React-useEffect, useLayoutEffect, useMemo, useCallback, useReducerの使い方
- 3. mouseenter, mouseover, mouseleave, mouseoutイベント、どれが発生するのか理解する
- 4. MQTTブローカーの shiftr.io で HTTPリクエスト(内向き/外向き)を組み合わせる【2022年4月版】
- 5. WASMのパフォーマンス最適化の勘所と使い所考察
- 6. 【Stimulus】Stimulusをクリックした要素を取得する方法
- 7. Deno について学んでみた
- 8. 【解決方法】iOS Safari で JavaScript からCSS変数を取得できない
- 9. Google App Scriptでセルの背景色が連続する時の開始セル、終了セルを取得するってみんなに言ってたっけ?
- 10. AWSでWebサイトを作ってみた(3) フロントエンド・キーワード抽出編
- 11. 【6日目】メモ帳アプリの作成 [3]
- 12. 【Deno1.23~】`deno run`コマンドは型チェックしなくなる予定なので注意
- 13. jqueryでタグの絞り込みを実装する
- 14. 【コンポーネント】コンテンツを開閉させるもっと見るボタン
- 15. [自分用メモ] select2のoptions(選択肢)にclassとhtmlを引き継ぐ
- 16. 【Google MAP】地図移動後の緯度経度の再取得方法
- 17. ES6のJavaScriptを知らないフロントエンドエンジニアは早急に学ぶべし! 配列の便利メソッドを7つご紹介します!
- 18. 【jQuery】submit()を使ったのにフォームのPOSTが出来ない
- 19. ビジュアルリグレッションテストのすすめ
- 20. 【MPA】LarvelにVueコンポーネントを導入する方法とVueコンポーネントが大量にある時のコツ?
Content-Dispositionのデコードに見るリーダブルコードとは
## Content-Dispositionのデコード例
## なにやってるのかわからんコード
“`javascript
let headerLine = axiosResponse.headers[‘Content-Disposition’] || axiosResponse.headers[‘content-disposition’];
const fnameArr = headerLine.split(‘;’);
let filename = fnameArr[fnameArr.length – 1].split(‘=’)[1].replace(‘”‘, ”).replace(‘”‘, ”);
if (filename.indexOf(utf8Name) !== -1) {
filename = decodeURI(filename.replace(utf8Name, ”));
}
return filename
“`## リーダブルなコード
“`javascript
var filenameRegex = /filename[^;=\n]*=
React-useEffect, useLayoutEffect, useMemo, useCallback, useReducerの使い方
# 理解のポイントと前提
1. 描画サイクルの理解
Reactアプリケーションは「データの更新⇨コンポーネントの再描画⇨その他の処理」の一連のサイクルを繰り返す
2. 「その他の処理」の実装方法
useEffect, useLayoutEffect, useMemo, useCallback, useReducerを使う
3. 描画関数の実態は関数である
3. 「依存配列」という仕組みを使うことで、「その他の処理」の実行タイミングを細かく定義できる
3. return文を書くことで、描画コンポーネントがアンマウントされた時の処理を定義できる(useEffect, useLayouEffect)
3. useEffectとuseLayoutEffectは仲間
3. useMemoとuseCallbackは仲間## useEffect関数
Reactコンポーネントの描画が完了した**後に**実行される関数
“`react
export default function App() {
const [val1, setVal1] = useState(“”);
const [val
mouseenter, mouseover, mouseleave, mouseoutイベント、どれが発生するのか理解する
mouseenter, mouseover, mouseleave, mouseoutイベントについて、マウスポインターが要素のボックスを出入りする際にどれがどの順番で発生するのか、仕様をすぐ忘れてしまうので、自分がわかりやすいようにサンプルを作ってCodePenと記事に残すことにしました。
デモ: https://codepen.io/kaz_hashimoto/pen/qBpxMVo
ボックスは外側からid=”outer”, “inner”, “bottom”を振ってあり、それぞれの要素に対して`addEventListener()`を呼び、上記4つのイベントを待ち受けます。
“`html:html
Hello
“`
## 外側から内側へ入る時
マウスポインターがボックスの外側から内側へ入る時に受信するイベントの様子。イベント名を色分けして見やすくしました。区切り記号「—–」までが、1回のアクションに対して受信する一
MQTTブローカーの shiftr.io で HTTPリクエスト(内向き/外向き)を組み合わせる【2022年4月版】
MQTT を利用する際の仲介役となる MQTTブローカーを準備する際、外部サービスやライブラリ等を利用して準備するなどしますが、クラウド・デスクトップの両方で使える MQTTブローカーで shiftr.io というサービスがあります。
この shiftr.io は、MQTT だけでなく HTTP のインタフェースを持っており、HTTPリクエストと MQTT の Pub/Sub との間をつなぐ役割を担うこともできます。その shiftr.io の HTTPインタフェースについては、過去に一部を試したことがあり、手順を以下の記事に書いていました。
●【NoCode 2020】 MQTTブローカーの shiftr.io と IFTTT の Webhook をつなぐ(shiftr.io の HTTP Interface) – Qiita
https://qiita.com/youtoy/items/c690e2f1aa064e6dd289しかし、その時に試せてなかった機能もあったり、試したものの記事にしてなかった部分もあったため、あらためて今回の記事で情報をまとめてみようと思います
WASMのパフォーマンス最適化の勘所と使い所考察
## TL;DR
– JavaScriptとWebAssemblyの間の値渡しには気を使おう(なるべく値のコピーを避けよう)。
– JSはとても高速で、単純なループではWASM並の速度が出るので、WASMの使い所はよくよく考えるべき。## はじめに
1000^2級の画像の全ピクセルをループして、(簡単に言うと)RGBA値の最も大きい値を抽出する、という処理をブラウザ上で突然したくなりました。ピクセル数が1,000,000だと、RGBAなので配列長は4,000,000となります。ブラウザで扱いたくないサイズ感です。
ここで、①WASMで高速化、ダメなら②サーバーサイドで計算させる…という算段をして、とりあえずWASMを試してみました。色々チューニングした結果、ブラウザ上で現実的な速度が出ることがわかりました(数十msの世界)。
### RGBA値の計算について
本記事では深く説明しませんが、今回やりたい処理は「下記式により求まる実数値の最大値を探す」というものです。
“`
value = -10000 + ((R * 256 * 256 + G * 256 + B) *
【Stimulus】Stimulusをクリックした要素を取得する方法
# はじめに
Rails7 でデフォルトでインストールされるようになった Stimulus でクリックした要素を取得する方法を忘備録として残しておきます。
## 環境
Rails 7.0.2
Ruby 3.1.1
Stimulus-rails 1.0.4# 取得方法
ボタンが4つあり特定のボタンをクリックした時だけ、アクションを発動させる時、通常なら`data-target`を利用することで javascript 側で要素を取得できます。
ですが、それが使えないときは`Stimulus`のメソッドの引数を利用することで取得できます。## html
“`html: button.html
OTHERカテゴリの最新記事
- 2024.09.19
JavaScript関連のことを調べてみた
- 2024.09.19
JAVA関連のことを調べてみた
- 2024.09.19
iOS関連のことを調べてみた
- 2024.09.19
Rails関連のことを調べてみた
- 2024.09.19
Lambda関連のことを調べてみた
- 2024.09.19
Python関連のことを調べてみた