Download
Entwicklung
Konto
Download
Entwicklung
Anmelden
Vergessen Konto/Passwort
Konto erstellen
Sprache
Hilfe
Sprache
Hilfe
×
Anmelden
Anmeldename
Passwort
×
Vergessen Konto/Passwort
Übersetzungsstatus von Deutsch
Kategorie:
Software
Personen
PersonalForge
Magazine
Wiki
Suche
OSDN
>
Finden Software
>
Multimedia
>
Graphics
>
Editors
>
Raster-Based
>
Drop & Draw
>
Ticket-Liste / Suche
>
Ticket #36865
Drop & Draw
Beschreibung
Projekt Zusammenfassung
Entwickler-Dashboard
Web-Seite
Entwickler
Bildergalerie
RSS Feed-Liste
Aktivität
Statistiken
Historie
Quellcode
Quellcode-Repositorys-Liste
Subversion
Repository ansehen
Ticket
Ticket-Liste
Liste der Meilensteine
Typenliste
Komponentenliste
Liste der zuletzt benutzten Tickets/RSS
Neue Ticket abschicken
Dokumente
Titelseite
Titel-Index
Kürzliche Änderungen
Kommunikation
Forum-Liste
Entwickler (12)
Hilfe (1)
Offene Diskussion (1)
Ticket #36865
Ticket-Liste
Neue Ticket abschicken
RSS
Notes on JavaScript
Eröffnet am:
2016-12-11 08:58
Letztes Update:
2016-12-19 08:14
beobachte
ON
OFF
Auswertung:
takoyaki_umaaaa
Verantwortlicher:
(Keine)
Typ:
次回 改善項目
Status:
Offen
Komponente:
(Keine)
Meilenstein:
(Keine)
Priorität:
5 - Mittel
Schweregrad:
5 - Mittel
Lösung:
Keine
Datei:
Keine
Details
JavaScript で実装する上で詰まった箇所と今後の方針
【症状】Element に値をセットしても黙って無視される。問題の原因が特定できない。
【原因】
下記が問題原因である場合がほとんどだが、問題についてのフィードバックが全くないため原因特定に非常に時間がかかる。
設定文字列の最後に単位 (pxなど) がない
設定文字列に余計な文字が入っている (セミコロンが入っている、など)
Property が Read only である可能性 (CSS 定義など)
Spell miss, または 大文字/小文字の間違い
(クロージャなどで) 変数定義が使用箇所よりも後になっている
【対策】
Element 操作用 Wrapper Class を作成し、そこを通してアクセスする
Setter は単位漏れをチェックするして追加するなりエラーを吐くなり人間側が分かるようにする
Spell miss などは Unit test で検出できるようにする
【症状】true になるはずの比較結果が false になる
【原因】
文字列を値を
"=="
や
"<="
で比較している
Edge と Chrome で動作結果が変わる
【対策】
Element 操作用 Wrapper Class を作成し、Property は number か enum 保持で統一する
【症状】Mouse downでElementを最前面にする処理(removeChild/appendChild)があるとscrollbarが効かなくなる
【条件】
ツールバーが複数表示されている
ツールバーの中にはボタンが並んでおり、ツールバー内で縦横スクロール表示する
ツールバーは選択(mouse down)したものが他のツールバーよりも手前に移動する
【症状(詳細)】
ボタンを表示しようとスクロールバーをクリックした瞬間にスクロールバーが消える
クリックしたツールバーが最も手前に表示される
【原因】
スクロールバーがmouseイベントをその親にも投げるために親要素の処理が動く
スクロールバーがイベントを拾ったことがわからない(親要素が初めてイベントを拾ったような情報で入ってくる)
(推測)removeChild → appendChildしたタイミングで要素の初期化が走っているっぽい(Animationも再実施されたりする)
そのためスクロールバー表示状態も失われると推測
【回避策】
z-indexを使う(情報が初期化されなければいい)
【症状】要素を回転させた状態でCSS Animationを適用したい
【問題点】
User入力での回転(rotateZ())とCSS Animation定義のrotateZ()が被る
【対策】
DIVを2枚作成して、User操作は1枚目に、Animationは2枚目に適用させる
定義を反映させる数だけDIVを重ねたいが、要素を重ねる枚数が増えるほど Microsoft Edge の動作が不安定になる
そのため今回は2枚重ねまでにする
【症状】CSS定義が反映されない
【条件】
CSSファイルの定義が一部反映されない
Styleタグ内の定義が一部反映されない
【原因】
反映されない定義付近に "//" でコメントしている箇所がないか(CSSはブロックコメントのみ)
要素を半透明にするとblock-shadowやtext-shadowが非常に見づらくなる場合がある
【症状】console.errorが出力されない。変数がundefinedのまま更新されない
【条件】
ES6のClass構文を使っている
constructor内で処理している
【原因】
はっきりは分からない
(推測)constructor()内はinstanceが作成される前の状態なので外部関数が正しくcallできないのかもしれない
この辺りの動作は実装依存なのか?それすら不明。
【回避策】
constructor()では内部変数の定義と初期化のみにする
必要な初期化処理は initialize() 関数を別途用意してnewの後に呼び出す
【症状】Pure JavaScriptのProjectから WinJSを使ったProjectにしたら画面周りの動きが変わった
かなり酷い
最初から方針が決まっているならReleaseに近い環境で開発する(当然だが)
今回のように習得しながらの場合は絶望的。
WinJSに拘らず、Cordovaなども考慮に入れて対応していくしかない
【症状】Pure JavaScript環境から WinJS環境に変更すると、一部のElementのscrollbarが効かない
見た目上は No.3 の症状と同じに見える
【回避策】
scrollbarを表示しているElementに "position: relative" を追加する
※ 対応前は未定義だった( == position: static)
【原因】
はっきりは分からない
この症状が出たときにscrollbar表示Elementの高さを、親Elementの2倍にしてみた
すると下半分だけスクロールバーが操作できる状態になった
この現象からの想像でしかないが、position:staticだとscrollbar eventを無視してもっと親のElementに通知するという実装になっているようにしか見えない
(ちょうどposition:absoluteの親にposition:staticがあっても無視するような)
【症状】Pure JavaScript環境から WinJS環境に変更すると、index.htmlのviewport指定が無視される
【原因】
はっきりは分からない。指定が無視されるとか理解できない。Edgeは独自実装を避ける路線で開発されているはずでは?
とりあえず WinJS のコントロールに Viewbox というものがあるらしい。しかし使いたくない。使いたくもないLiblaryに作法を強要されて素直には従えない。コードも共有できないものになるし。
UWP
File access 制限が不便に感じる。アプリ化しても UWP の場合は File picker での指定が必要になる。
従来通り file access するには WPF で作成する必要がある。
Ticket-Verlauf (3/8 Historien)
Show older Histories
2016-12-11 08:58
Aktualisiert von:
takoyaki_umaaaa
New Ticket "Notes on JavaScript" created
2016-12-11 20:06
Aktualisiert von:
takoyaki_umaaaa
Details Updated
2016-12-18 22:30
Aktualisiert von:
takoyaki_umaaaa
Details Updated
2016-12-18 22:31
Aktualisiert von:
takoyaki_umaaaa
Details Updated
2016-12-18 22:44
Aktualisiert von:
takoyaki_umaaaa
Details Updated
2016-12-18 22:58
Aktualisiert von:
takoyaki_umaaaa
Details Updated
2016-12-18 23:07
Aktualisiert von:
takoyaki_umaaaa
Details Updated
2016-12-19 08:14
Aktualisiert von:
takoyaki_umaaaa
Details Updated
Dateianhangliste (
0
)
Dateianhangliste
Keine Anhänge
Bearbeiten
Please login to add comment to this ticket »
Anmelden
JavaScript で実装する上で詰まった箇所と今後の方針
下記が問題原因である場合がほとんどだが、問題についてのフィードバックが全くないため原因特定に非常に時間がかかる。
Setter は単位漏れをチェックするして追加するなりエラーを吐くなり人間側が分かるようにする
Edge と Chrome で動作結果が変わる
そのためスクロールバー表示状態も失われると推測
そのため今回は2枚重ねまでにする
この辺りの動作は実装依存なのか?それすら不明。
今回のように習得しながらの場合は絶望的。
※ 対応前は未定義だった( == position: static)
すると下半分だけスクロールバーが操作できる状態になった
(ちょうどposition:absoluteの親にposition:staticがあっても無視するような)
UWP
従来通り file access するには WPF で作成する必要がある。