問題タブ [forward-compatibility]

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.

0 投票する
0 に答える
154 参照

android - Android フレームワークの前方非互換性の例

Android のフラグメンテーションに関するレポートでは、Android フレームワーク/SDK の前方互換性について調査しています。

Android SDK は前方互換性があると広く言われています。つまり、あるフレームワークで開発されたアプリケーションは、新しいフレームワークを実行しているデバイスで実行されます。つまり、Android の前方互換性または後方互換性はありますか? . 機能または API が廃止されると、ほとんどの場合、developer.android.com で、その機能がデバイス ( Google マップ Android v1など) で引き続き動作することが述べられています。

さて、2.2 アプリケーションを 4.1 で実行しているときに、Text-to-Speech との互換性がないケースを経験しました。このケースの縦向きはこちらText to Speech not working in Android 4.2 Jelly Beanです。(手短に言えば、デバイスに TTS が存在することは 4.1 以降では必須であるため、TTS を使用する前にその可用性をチェックする必要はありません。実際、このチェックは 4.1 では誤って false を返すため、コードは2.x 用に書かれたものは 4.1 以降では正しく動作しません。)

アプリまたはその機能の 1 つが新しいバージョンで動作しなくなる他の例はありますか (1.x 用に開発されたアプリは別として)? 新しいデバイスで問題を起こす特定の非推奨の機能/API は何ですか?

0 投票する
0 に答える
315 参照

ios - UIAlertController を別の UIViewController 内にカプセル化する方法はありますか?

私はiOSにかなり慣れていないので、答えを明確にしてください。UIAlertController を別の UIViewController にカプセル化して、iOS 8 で廃止されたため、UIActionSheet の代わりとして使用することをいじっています。

アイデアは、後方互換性と前方互換性のある UIActionSheet の代替であり、たとえば ImmortalActionSheet と呼ばれます。

コンポーネントが iOS 8 以降で使用されている場合、UIAlertController を使用できます。それ以外の場合は、UIActionSheet にフォールバックします。これにより、私が使用しているアプリケーションに関する多くのアクション シートを置き換える、後方および前方互換性のあるアクション シートになります。はい、下位互換性を維持する必要があります。

これのプロトタイプを作成しましたが、何らかの理由で、ImmortalActionSheet を表示すると、UIAlertController ビュー自体が常に左上 (0, 0) に表示されます。中心を変えても動かない。

UIAlertController がバグのある位置に移動しました

0 投票する
2 に答える
670 参照

c# - データ コントラクト シリアライザー 参照されるプロパティの前方互換性

データ コントラクト シリアライザーの前方互換性をサポートしようとしています。私が問題を抱えているケース:

後のバージョンで既知の型内に追加されたプロパティへの参照として保存されたオブジェクトがある場合、それは例外になります。これらのタイプは両方とも両方のバージョンで知られていることに注意してください。新しいのは、オブジェクトの 1 つの内部のプロパティだけです。

samplessamplesに問題の簡単なシミュレーションを添付しました。

2 つの異なるプロジェクトがあります: V1 は、既に展開されている古いバージョンです。V1 の新しいバージョンである V2。V2 はそのデータを保存しており、V1 は V2 で保存されたデータをロードして、上位互換性をサポートできる必要があります。

3 つのカスタム タイプがあります。People: 2 つのオブジェクト参照があり、Person と AnotherPerson がそれらに保存されています。

V1 および V2 では:

人物: 名前があります。

V1 および V2 では:

AnotherPerson: Name を持ち、V2 では Person (FriendPerson) への参照が追加されました。

V1 では:

V2 では:

バージョン 2 はデータを保存しています:

バージョン 1 は同じデータをロードしています。

保存されたデータ:

V1 がデータをロードしようとすると、次の例外がスローされます。

内部例外:

オブジェクトが拡張オブジェクト内で逆シリアル化され、型を持たない型を参照しているため、エラーが発生したと思われます。その理由は、People 内に Person の新しいインスタンスを追加し、AnotherPerson (FriendPerson) 内で同じインスタンスを参照しない場合です。

次に、保存されたファイルは次のようになり、すべてが正常に機能します。

データ コントラクト リゾルバー、シリアライザー内の既知の型の動的な追加、およびデータ コントラクト サロゲートを使用して問題を解決しようとしましたが、どれも機能しませんでした。その理由は、シリアライザーが FriendPerson をデシリアライズしているときに例外がスローされ、サロゲートまたはリゾルバー内のオーバーライドされたメソッドがその前に呼び出されていないためです。

オブジェクト参照を保持する必要があり、それを削除することはできません。

0 投票する
1 に答える
1520 参照

windows-10 - Windows 10でJavaScriptを使用してEdgeで「タブレット/タッチモード」を検出しますか?

この質問は以前に尋ねられましたが、答えは私が必要としているものではありません。

Microsoft Edge でタブレットかどうか (デスクトップ) を区別する必要があります。

1) 次のスレッド: Windows 10 で JavaScript を使用して、Edge および IE11 で「タブレット モード」を検出できますか?

確かにうまくいきましたが、Microsoft が次のバージョンで動作を変更するのではないかと心配しています。

彼らがそうしないことをどのように確認できますか?

デスクトップで定義されているため、 での回答if condition of window.PointerEventはまったく機能しません。

ここで提案されているように、CSS Media Queries Interaction メディア機能を使用できません: ユーザーが Microsoft Edge タブレットまたはデスクトップ ブラウザーを起動したかどうかを検出する方法はありますか?

0 投票する
1 に答える
506 参照

caching - angular2-beta.0 は本当にビューをキャッシュしますか?

スピードとパフォーマンス

Angular 2 は Angular 1 よりも大幅に高速化されており、サーバー側のプリレンダリングによる高速な初期ロード、高速な起動のためのオフライン コンパイル、スムーズな仮想スクロールと迅速なビュー遷移のための超高速の変更検出とビュー キャッシュがサポートされています。

機能は素晴らしいように見えますが、通常の要件は、 から に移動するときにListComponentをキャッシュしたままにし、 から に戻るときに を再ViewComponentレンダリングする必要がないことです (多くの場合、ページ 2、3 などから AJAX データを取得します。データをサービスに保持し、クリックして戻ったときに保存できることを知っていますが、データを再レンダリングします. キャッシュする方が良い方法だと本当に思います.ListComponentViewComponentListComponentListComponentscrollPosition

を実装CanReuseしましたが、機能しません。 の間を移動する場合にのみ機能しViewComponentsます。ですから、ListComponenttoViewComponentキャッシングがどのように機能するかを知りたいのです。

0 投票する
1 に答える
210 参照

android - Androidの互換性動作とは何ですか?

targetSDKVersion のドキュメントを読んでいるときに、「互換性動作」という用語に出会いました。

アプリケーションが対象とする API レベルを指定する整数。設定されていない場合、デフォルト値は minSdkVersion に指定された値と同じです。この属性は、ターゲット バージョンに対してテストしたことをシステムに通知し、システムはターゲット バージョンとのアプリの前方互換性を維持するために互換動作を有効にすべきではありません。アプリケーションは、古いバージョン (minSdkVersion まで) でも実行できます。

ここで互換性動作とは何かわかりません。どんな例でも、この用語を明確にするのに役立ちます。