タイトルが長すぎる場合は、JavaScript を使用して bytes_javascript のヒントで文字列をインターセプトしてください
フロントエンド開発者として、Web ページの表示ではタイトルが長すぎるため、CSS を使用して実装すると文字列をインターセプトする必要がある場合に、さまざまな互換性の問題やさまざまな落とし穴が発生することがあります。
バックグラウンドプログラムにカットをお願いしたり、色々言い訳してバックグラウンドにバイト単位でカットをお願いしたりするのは、結局バックグラウンドを潰すのと同じで、文字の長さに合わせてカットするだけかもしれません。最終結果が正しくない場合は、戻って CSS を調整し、互換性を調整することをお勧めします。
上記のような感想を持つフロントエンドの学生は、黙って気に入っていただけます。
最近、バックエンドがインターフェイス (json) のみを提供し、すべてのページのデータ レンダリングとデータ バインディングがフロント エンドに任せられているプロジェクトに遭遇しました。最後に、SEO とは関係なく、ページ上のすべての主導権は私の手にあり、うっかりバイトインターセプトという古い問題に遭遇してしまいました。
インターネット上で流通しているバイト長を簡単に取得する Javascript メソッドがあります:
String.prototype.Blength = function(){//文字列の長さをバイト単位で返します
return this.replace(/([^x00-xFF])/g , "aa");
};
これは非常に単純ですが、厳密には正しくありませんが、これを使用します。
でも、正規表現を使うのは手間がかかるだけで、ちょっとご都合主義な気もします。コードは 2 行なので、通常の計算方法を使用することにしました。
for (var i=str.length;i--;){
n = str.charCodeAt(i) > 255 ?
}
return n;
}
var str = this,
n = 0;
for (var i = str.length; i--; ) {
n = str.charCodeAt(i) > 255 ? 2 : 1;
return n ;
}
//String オブジェクトにメソッドを追加します
String.getBlength = function ) {
for (var i = str.length, n = 0; i--; ) {
n = str.charCodeAt(i) > 2 : 1; return n;
}
//最初に中国語と英語が混在した長い文字列を構築します
var str = "javascript バイトによる文字列の効率的なインターセプト getBlengthjavascript バイトによる文字列の効率的なインターセプト getBlength"; str = str.replace(/./g, str).replace(/./g , str);
console.log("作成された文字列の長さは次のとおりです: ",str.length)
console .log("---------------テストが始まります-- ------------")
console.log("str.Blength() > > ",str.Blength())
console.log("String.getBlength (str) >> ",String.getBlength(str))
console.log("-- 効率テストの開始--")
var time1 = new Date()
for (var i=0;istr.Blength()
}
コンソール.log("Blength には時間がかかります: ",new Date() - time1);
var time2 = new Date()
for(var i=0;iString.getBlength(str)
}
console.log("getBlength contains When: ",new Date() - time2);
結果は少し非効率的です理由については、プロトタイプ チェーンの取得に時間がかかっている可能性があります。私はそれを知っています。
作成された文字列の長さは次のとおりです。 : 314432
---------------テスト開始-------------
コードをコピー
今度はインターセプトします 文字列の基本関数が利用できるようになりました。文字が占める最大バイト長は 2 であるため、適切なインターセプト位置を見つけるにはバイナリ方式を使用するのが最善です。
非常に効率的なインターセプト関数を教えてください:
コードをコピーします
コードは次のとおりです。
//バイト長の単純な計算
String.getBlength = function (str) {
for (var i = str.length, n = 0; i--; ) {
n = str.charCodeAt(i) > 255 ? 2 : 1;
}
}
// 指定されたバイト数に従って文字列を切り詰めます。 function (str,len,endstr){
var len = len
,endstr = typeof(endstr) == '未定義' "..." : endstr.toString(); a ){ var n = a / 2 | return (n > 0 ? n : 1)} //二分探索に使用します
if(!(str "").length || !len || lenif(this.getBlength(str) <= len){return str;} //関数全体の中で最も時間のかかる判断、最適化へようこそ
var lenS = len - this.getBlength(endstr)
,_lenS = 0
, _strl = 0
while (_strl <= lenS){
var _lenS1 = n2(lenS -_strl)
_strl = this.getBlength(str.substr(_lenS,_lenS1))
_lenS = _lenS1
}
return str.substr(0,_lenS-1) endstr
}
上の文字列をテストします。長ければ長いほど、読み込みに時間がかかります。
console.log("String .cutByte(str,12,'...') >> ",String.cutByte(str,12,'...'))
console.log( "String.cutByte(str,13, '..') >> ",String.cutByte(str,13,'..'))
console.log("String.cutByte(str,14, '.') >> " ,String.cutByte(str,14,'.'))
console.log("String.cutByte(str,15,'') >> ",String. CutByte(str,15,'') )
console.log("--効率テストの開始--")
var time1 = new Date()
for(var i=0;iString.cutByte(str,200000,'...')
}
console.log("時間がかかります:",new Date() - time1); 🎜>
出力結果:
作成された文字列の長さ: 314432 バイト長: 425408
-------------テスト開始--- ---------- -
コードをコピー
--効率テストの開始--
時間がかかります: 155
実際には、インターセプトされた文字の長さを 30W と 40W に変更しても、それほど違いはありません。バイナリ方式に直面すると、これはすべて同じレベルにあります
最後に、学生の皆さん、効率に挑戦してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









フロントエンドのサーマルペーパーチケット印刷のためのよくある質問とソリューションフロントエンド開発におけるチケット印刷は、一般的な要件です。しかし、多くの開発者が実装しています...

スキルや業界のニーズに応じて、PythonおよびJavaScript開発者には絶対的な給与はありません。 1. Pythonは、データサイエンスと機械学習でさらに支払われる場合があります。 2。JavaScriptは、フロントエンドとフルスタックの開発に大きな需要があり、その給与もかなりです。 3。影響要因には、経験、地理的位置、会社の規模、特定のスキルが含まれます。

JavaScriptは現代のWeb開発の基礎であり、その主な機能には、イベント駆動型のプログラミング、動的コンテンツ生成、非同期プログラミングが含まれます。 1)イベント駆動型プログラミングにより、Webページはユーザー操作に応じて動的に変更できます。 2)動的コンテンツ生成により、条件に応じてページコンテンツを調整できます。 3)非同期プログラミングにより、ユーザーインターフェイスがブロックされないようにします。 JavaScriptは、Webインタラクション、シングルページアプリケーション、サーバー側の開発で広く使用されており、ユーザーエクスペリエンスとクロスプラットフォーム開発の柔軟性を大幅に改善しています。

同じIDを持つ配列要素をJavaScriptの1つのオブジェクトにマージする方法は?データを処理するとき、私たちはしばしば同じIDを持つ必要性に遭遇します...

この記事の視差スクロールと要素のアニメーション効果の実現に関する議論では、Shiseidoの公式ウェブサイト(https://www.shisido.co.co.jp/sb/wonderland/)と同様の達成方法について説明します。

Console.log出力の違いの根本原因に関する詳細な議論。この記事では、Console.log関数の出力結果の違いをコードの一部で分析し、その背後にある理由を説明します。 �...

JavaScriptを学ぶことは難しくありませんが、挑戦的です。 1)変数、データ型、関数などの基本概念を理解します。2)非同期プログラミングをマスターし、イベントループを通じて実装します。 3)DOM操作を使用し、非同期リクエストを処理することを約束します。 4)一般的な間違いを避け、デバッグテクニックを使用します。 5)パフォーマンスを最適化し、ベストプラクティスに従ってください。

JavaScriptはPowerPointで実行でき、外部JavaScriptファイルを呼び出したり、VBAを介してHTMLファイルを埋め込んだりすることで実装できます。 1. VBAを使用してJavaScriptファイルを呼び出すには、マクロを有効にし、VBAプログラミングの知識を持つ必要があります。 2。JavaScriptを含むHTMLファイルを埋め込みます。これは、シンプルで使いやすいが、セキュリティ制限の対象となります。利点には、拡張機能と柔軟性が含まれますが、欠点にはセキュリティ、互換性、複雑さが含まれます。実際には、セキュリティ、互換性、パフォーマンス、ユーザーエクスペリエンスに注意を払う必要があります。
