タグ付けされた質問 「javascript」

ECMAScript(JavaScript / JS)とそのさまざまな方言/実装(ActionScriptを除く)でのプログラミングに関する質問。このタグが単独で使用されることはほとんどありませんが、ほとんどの場合、[node.js]、[jquery]、[json]、および[html]タグに関連付けられています。

1
Svelteの「スクリプトを評価する」時間は、インフェルノと比較して高く表示されています。
データバインディングとDOM管理機能を提供するプロジェクト用のライブラリを選択しようとしています。複数のライブラリを比較すると、結局InfernoとSvelteになりました。 Svelteのスクリプト時間の評価が他のライブラリよりも高いことに気付きました(添付の画像を参照してください) 。 サンプルでは、​​100 x 15のテーブル(合計1500セル)をレンダリングしました。レンダリング時間は数ミリ秒減少しますが、インフェルノのスクリプト実行時間はその半分です。 要素の数に応じて時間が大幅に増加します。15000セルsvelteスクリプトの評価時間は2000ミリ秒ですが、インフェルノは680ミリ秒かかりました。 Svelteコード: <style> table,td,tr { border: 1px solid black; } </style> <script> import { officedatabase } from '../../../data_generator/sampleGridData/initialloaddata.js'; </script> <table> {#each officedatabase as row} <tr> {#each row as cell} <td>{cell}</td> {/each} </tr> {/each} </table> インフェルノサンプルコード: import { Component } from 'inferno'; import { officedatabase …

2
Service Worker:CSSおよびJSファイルのリクエストにヘッダーを追加します
すべてのリクエストに単純なヘッダーを添付するために、サービスワーカーを(数時間)使用しようとしています。イライラするのは、一種の作品です。 試み1: self.addEventListener("fetch", event => { const modifiedHeaders = new Headers({ ...event.request.headers, 'API-Key': '000000000000000000001' }); const modifiedRequest = new Request(event.request, { headers: modifiedHeaders, }); event.respondWith((async () => { return fetch(modifiedRequest); })()); }); 上記のコードはHTMLファイルで機能しますが、CSSおよびJSファイルでは次のエラーが発生します ReferenceError:ヘッダーが定義されていません ヘッダー要件を無効にすると、ページに画像とJavaScriptが読み込まれ、通常のように操作できます。 試み2: var req = new Request(event.request.url, { headers: { ...event.request.headers, 'API-Key': '000000000000000000001' }, method: event.request.method, …

4
文字列0(n)を比較するのに、数値0(1)を比較するのはなぜですか?
2つの文字列が等しいかどうかを比較するには、インタープリターが両方の文字列を反復処理して各文字を比較する必要があることを理解しています。 これは時間を複雑0(n)にしnます。ここで、は最短の文字列の長さです。 ただし、2つの数値を比較して等しいかどうかは0(1)です。 何故ですか?インタプリタは、等しいかどうかを確認するためにすべての数値を反復処理する必要はないでしょうか?

2
MonacoをVue.jsと統合するにはどうすればよいですか?
新しいvueアプリケーションを作成して実行npm install -s monaco-editorした後、App.vueを次のように変更しました。 <template> <div id="app" style="width: 500px; height: 500px;"> <div ref="editor" style="width: 500px; height: 500px;"></div> </div> </template> <script> import * as monaco from 'monaco-editor'; export default { name: 'app', async mounted() { const el = this.$refs.editor; this.editor = monaco.editor.create(el, { value: "console.log('hello world');", language: 'javascript', }); }, }; …

2
HTMLビデオループがビデオファイルを再ダウンロード
かなり大きいHTML5ビデオがあります。Chromeも使用しています。video要素にはloop属性がありますが、ビデオが「ループ」するたびに、ブラウザはビデオファイルを再ダウンロードします。設定しましたCache-Control "max-age=15768000, private"。ただし、これによって同一ファイルの追加ダウンロードが妨げられることはありません。Amazon S3を使用してファイルをホストしています。また、s3サーバーはAccepts Rangesヘッダーで応答するため、ファイルの数百の部分的なダウンロードが206http応答コードで要求されます。 これが私のビデオタグです: <video autoplay="" loop="" class="asset current"> <source src="https://mybucket.s3.us-east-2.amazonaws.com/myvideo.mp4"> </video> 更新: 最良の解決策はAccept Ranges、元の応答でヘッダーが送信されないようにし、代わりに200 http応答コードを使用することです。ビデオを.htaccessファイル全体にキャッシュするために、これをどのように実現できますか? 前もって感謝します。

3
Flask APIは、JSONファイルをシンプルなHTML + JS + CSS Webアプリケーションに提供し、安全に保ちます
テーブルにいくつかのデータを表示する単純なWebアプリケーションを作成しました。これは毎週更新されます。 この更新は、SQLiteデータベースに配置する前に、一部のデータをスクレイピングおよび変更するPythonコードを使用してバックエンドで行われました。 いくつか読んだ後、そのデータをウェブアプリに配信するには、Flaskを使用してAPIを作成する必要があることを学びました。これにより、そのデータを取得してJSONの形式でウェブアプリのJSに配信し、データを使用してテーブル。ただし、ユーザー名とパスワードでAPIを保護する必要があります。しかし、APIからデータを取得するJSフロントエンドとして、ユーザー名とpwをJSにハードコード化する必要があるため、ユーザーが読み取ることができるため、実際には意味がありません。(おもう) 私は自分のAPIをすべての人に公開する必要がありますか、それともSQLiteデータをWebアプリケーションのバックエンドとして使用できるようにするための方法ではありませんか?私はAPIをGETのみに維持することに問題はありません。

1
独自のサーバー(汎用プロバイダー)を使用したElectron自動アップデーターのセットアップ
FTP経由でアプリインストーラーをアップロードしたサーバーがあります。その名前はでquickmargo Setup 1.0.0.exeあり、それはで利用可能です https://quickmargo.pl/dist/download/quickmargo Setup 1.0.0.exe また、FTP経由でlatest.yml同じディレクトリにアップロードしました。 https://quickmargo.pl/dist/download/latest.yml index.jsのプロジェクトでは、 import { autoUpdater } from 'electron-updater' autoUpdater.setFeedURL('https://quickmargo.pl/dist/download'); autoUpdater.on('update-downloaded', () => { autoUpdater.quitAndInstall() }); autoUpdater.on('update-available', (ev, info) => { alert('Update required!'); }); app.on('ready', async () => { if (process.env.NODE_ENV === 'production') { await autoUpdater.checkForUpdates() } }); 私が持っているpackage.jsonで"version": "1.0.0",そしてbuild:{}私は持っています: "win": { "icon": "build/icons/icon.ico", …

4
〜synchronous Node.js IPCを強制する
fork()IPC を使用して子プロセスを作成するノードサーバーがあります。ある時点で、子は長期実行タスクの一部として約10Hzで結果を親に送り返します。渡されたペイロードprocess.send()が小さい場合、すべてうまくいきます。送信するすべてのメッセージはすぐに受信され、親によって処理されます。 ただし、ペイロードが「大きい」場合(正確なサイズ制限を特定していません)、親がすぐに受信するのではなく、すべてのペイロードが最初に送信されます。子が実行されると、親が長期実行タスクを実行します。メッセージを処理します。 tl; dr visual: 良い(ペイロードが小さい場合): child: send() parent: receive() child: send() parent: receive() child: send() parent: receive() ... 悪い(大きなペイロードで発生): child: send() child: send() child: send() (repeat many times over many seconds) ... parent: receive() parent: receive() parent: receive() parent: receive() ... これはバグですか?(編集:動作はOS Xでのみ発生し、WindowsやLinuxでは発生しません) IPCペイロードを小さく保つ以外に、これを回避する方法はありますか? 編集2:以下のサンプルコードは、時間カウンターと反復カウンターの両方を使用して、更新を送信するタイミングを選択します。(実際のコードでは、n回の反復の後、またはループが特定の結果を達成した後に更新を送信することもできます。)ループの代わりにsetInterval/ を使用するようにコードを書き直すことは、setTimeout私にとって最後の手段です。機能を削除します。 編集:問題を再現するテストコードを次に示します。ただし、OS Xでのみ複製され、WindowsやLinuxでは複製されません。 …

1
webpack / gatsbyチャンクマッピング文字列の名前を変更する
Gatsbyで本番用アプリをビルドすると、次のようになります。 window.___chunkMapping={ "app":[], "component---src-templates-page-tsx":[], "component---src-templates-pages-newsletter-tsx":[] } これらのパスを印刷する代わりにハッシュ化することは可能ですか?背後で起こっていることからあまり露出したくないのです。 私はこれらの設定をwebpackで設定してみました: output: { filename: `[chunkhash:2][contenthash:5].js`, chunkFilename: `[chunkhash:2][contenthash:5].js`, }, また、.jsファイルは正常にハッシュされますが、テンプレートパスはハッシュされません。

5
他の純関数に委譲する共用体型で純関数をテストする
共用体型を取り、その型を絞り込み、他の2つの純粋関数のいずれかに委任する関数があるとします。 function foo(arg: string|number) { if (typeof arg === 'string') { return fnForString(arg) } else { return fnForNumber(arg) } } fnForString()およびfnForNumber()も純粋な関数であり、それらはすでにテスト済みであると想定します。 どのようにテストを行うべきfoo()ですか? あなたはそれに委譲しているという事実扱うべきであるfnForString()とfnForNumber()のためのテストを書くときに、本質的に、実装の詳細など、及びそれらのそれぞれのテストを複製するのfoo()?この繰り返しは受け入れられますか? あなたは、「知っている」のテスト書くべきfoo()にデリゲートをfnForString()し、fnForNumber()それらをからかっし、それらへの委譲ことをチェックすることにより、例えば?

2
CookieとSameSite +セキュア-ExpressJS
Expressアプリケーションで次の設定を行っているにもかかわらず、コンソールに次の警告が表示されています。誰かが以前にこのエラーを見たことがありますか?検索した結果、https://github.com/expressjs/express/issues/3095にアクセスしました 私はエクスプレスも使用しています:4.17.1 let COOKIE_OPTIONS = { httpOnly: true, sameSite: 'None', secure: true }; A cookie associated with a cross-site resource at http://MYURL.URL was set without the `SameSite` attribute. A future release of Chrome will only deliver cookies with cross-site requests if they are set with `SameSite=None` and `Secure`. You can …

1
Firebaseのサイズ変更拡張機能の完了後にダウンロードURLを取得する
これは私が達成しようとしていることであり、firebaseのサイズ変更画像拡張を実装し、画像をアップロードし、サイズ変更が完了したら、そのdowloadUrlのつまみをCloud Firestoreドキュメントに追加します。この質問は私に役立ちますが、それでも親指を識別してダウンロードURLを取得することはできません。これは、これまで試みてきたものです。 注:サムネイルをroot / thumbsに設定しました const functions = require('firebase-functions'); const { Storage } = require('@google-cloud/storage'); const storage = new Storage(); exports.thumbsUrl = functions.storage.object().onFinalize(async object => { const fileBucket = object.bucket; const filePath = object.name; const contentType = object.contentType; if (fileBucket && filePath && contentType) { console.log('Complete data'); if (!contentType.startsWith('thumbs/')) { …

1
ShadyCSSポリフィルがEdgeでCSSを適切に処理しない
サードパーティのWebサイト用のウィジェットを構築しています。シャドウDOMを使用して、CSSが私たちのWebサイトに干渉しないようにしています。私が使用していますShadyDOMとShadyCSSそれがエッジで動作させるためpolyfillsをし、IEが、私が期待するように、影のDOMのためのCSSを変換されていません。 例: <!DOCTYPE html> <html> <head> <title>Shadow DOM test</title> </head> <body> <div id="container">container is here</div> <script src="https://cdnjs.cloudflare.com/ajax/libs/webcomponentsjs/2.3.0/webcomponents-bundle.js"></script> <script> const shadow = document.getElementById("container").attachShadow({ mode: "open" }); const style = document.createElement("style"); style.innerHTML = ` :host .stuff { background: #ff00ff; } `; shadow.appendChild(style); const div = document.createElement("div"); div.classList.add("stuff"); div.innerHTML = "stuff inside shadow …

9
文字列が配列から少なくとも2つの同じ要素を持っているかどうかを判別
文字列に配列の同じ要素が少なくとも2つあるかどうかを確認したい const array = ["!", "?"]; const string1 = "!hello"; // should return false const string2 = "!hello?"; // should return false const string3 = "!hello!"; // should return true const string4 = "hello ??"; // should return true const string5 = "hello ?test? foo"; // should return true const …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.