問題タブ [web-frontend]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - JavaScriptスクリプトタグを早期に終了するには?
....セクションがたくさんあるページがあります。そのうちの 1 つでは、途中で停止し、このスクリプト タグの残りのコンテンツを実行しないことにしましたが、ページ上の他のコード セグメントは実行したままです。関数呼び出しでコード セグメント全体をラップせずにこれを行う方法はありますか?
例えば:
出力を生成する必要があります
ではない1 end
。
明らかな答えは、スクリプトを関数でラップすることです。
通常はこれが最善の方法ですが、適切でない場合もあります。だから私の質問は、もしあれば、これを行うことができる他の方法は何ですか? または、そうでない場合、なぜですか?
javascript - 高さに基づいてオーバーフロー要素を非表示にする
私は(純粋なJavaScript = JQueryなしを使用して)カスタムコントロールを作成しています。これは、複数の行にまたがって最初の行のみを表示するときにコンテンツを折りたたむコンテナです。コントロール内のボタン (下向き矢印) をクリックすると、コンテナーはそのすべてのコンテンツを展開します。コンテンツが 1 行しかない場合、ボタンはまったく表示されず、通常のコンテナーとして動作します。
以下の 2 つの図は、コントロールが折りたたまれた状態 (上) と展開された状態 (下) を示しています。
私が直面している問題は、ボタンを表示するタイミングとボタンを表示しないタイミングをどのように知るか = コンテンツが複数行であるか、1 行のみにまたがっているかを検出する方法です。私のアプローチは、要素の高さを取得し、それを折りたたんで、高さが変化したかどうかを確認することです(変化した場合は、複数行でなければなりません)。
このアプローチの問題は、関数内で、createCollapsingPanel()
作成している要素がまだ DOM に追加されていないことです。関数は要素を返し、それが DOM に追加されるだけです (以下のアーキテクチャ 1で示されています)。それがその 1 つの関数だけに関係する場合は、もちろん関数内に追加を移動できます (以下のアーキテクチャ 2 )。残念ながら、それは私がすべての関数を書いた方法です(それらは要素を返し、それらはそれらを呼び出した外側の関数の親要素に追加されるだけです)、それは最終的にこれを呼び出す他の親関数を書き直すことを意味します、一般的に私の関数のアーキテクチャ全体。
アーキテクチャ 1
アーキテクチャ 2
主な質問
私の現在のアーキテクチャ( Architecture 1 )でそれを処理する方法についてのアイデアはありますか?コントロール要素にアタッチできるイベントがあり、要素がDOMに挿入され、ブラウザスタイルが計算された後に呼び出されるでしょうか?
追加の質問
アーキテクチャ 1で関数を記述することは悪い習慣と見なされますか? 私は非基本的な JavaScript にかなり慣れていないので、どのような優れたプラクティスがあるかわかりません。
javascript - フロントエンド JavaScript プログラム
私はWeb開発に比較的慣れていません。フロントエンドの JS アプリケーションを作成している場合、ページを更新すると常に新しい JavaScript プログラムが作成されますか? ページのリロード中に同じ JavaScript ランタイムを実行し続けることは可能ですか? ページのリロードの前/中/後にフロントエンドにデータを保持するための多くのソリューションがあることは知っていますが、フロントエンド プログラム全体についてはどうでしょうか? シングルページアプリケーションがこれに対する解決策であることは知っていますが、ページの再読み込み/更新後に同じ JavaScript ランタイムを維持することに特に興味があります。
Chrome アプリや Cordova アプリなどの HTML5 アプリでは、ブラウザーで使用されないため、ページの更新は必要ないようです。そうは言っても、誰かがあなたのウェブサイトにアクセスして(誤って)ページを更新したときに、ページの更新を無効にしたり、フロントエンドの JS プログラムを再読み込みする必要がない方法を見つけたりできないのはなぜですか?
gulp - インクリメンタル ビルド フロントエンド プロジェクト
私はインクリメンタルビルドで本当に大きな問題を抱えています(開発プロセスのために、本番ビルドでは、ファイルをいくつかのファイルに縮小して連結しました)。
私のプロジェクト (角度) には何百もの js ファイルがあり、Web ページを読み込むのに最大 2 分かかります。根本原因: ファイルを取得するための要求が多すぎます (> 1000 ファイル)。
この問題に対処するアイデアがあります。
すべてのサードパーティ ライブラリを 1 つのファイルに連結します (gulp-angular の方法と同じ)。
同じフォルダー内の js ファイルを 1 つの js ファイルに連結します (連結のみで、縮小はしません)。そのフォルダーにある1つのファイルが変更された場合にのみ、フォルダー内のすべてのファイルをビルドします(gulp-cacheとgulp-rememberを使用)。
何か提案はありますか?browserify または webpack を試してみてください。
javascript - 遅延のあるJavaScriptで2つの関数を交互に無限に実行する
前の div を非表示にして、次々に表示したい 4 つの div があります。モジュロ演算子でカウンターを使用して、表示する div を選択します。したがって、次の方法で関数を実行する必要があります。
どうすればこれを達成できますか?
javascript - ページのスクロール中にツールバーがちらつく
プロジェクトのツールバーに問題があります。ページをスクロールすると、一部のページでツールバーがちらつき始めます。
私はツールバークラスにこのスタイルを使用しています:
CSS:
HTML:
python - Python サーバーから Web インターフェースへの更新のプッシュ
Python でアルゴリズムを作成し、その周りに Web インターフェイスを作成しました。フォームを送信してアルゴリズムを開始したら、実行中のページのデータをプッシュして更新したいと思います。どうすればこれを達成できますか?
javascript - Siesta Ext JS テストが完了しない
Siesta で Ext JS フロントエンドをテストしています。これが私のログイン/ログアウトテストです:
このテストでは、ユーザー名とパスワードをログイン パネルに入力し、ログイン ボタンをクリックします。メイン ビューが読み込まれると、ログオフします。何らかの理由で、このテストは決して終了しません。
チェーン内のすべてのアクションは成功しますが、テストはまだ実行中のままです。
どうすればこれを修正できますか?
ExtJS 5.1.0 で siesta-3.0.2-lite を使用しています。