JSZip は、.zip ファイルを作成、読み取り、変更できる JavaScript ツールです。 Web アプリケーションでは、Web サーバーからリソースを取得することが避けられません。すべてのリソースを .zip ファイルにマージできれば、必要なリクエストは 1 つだけになり、サーバーへの負荷が軽減されるだけでなく、Web の速度も向上します。アプリケーションのレンダリング速度。
今日は、JSZip を HT アプリケーションと組み合わせる方法について説明します。まず、このデモのレンダリングを見てみましょう:
最初のステップは、アプリケーションと関連リソースを .zip ファイルにパッケージ化することです。
これは、私が作成したファイルのリストです。圧縮したい場合は、応答リソース ファイルを対応するフォルダーに格納し、loadorder ファイルでリソースの読み込み順序を指定します。loadorder ファイルの内容は次のとおりです。
'js/ht.js', 'js/ht-obj.js', 'js/ht-modeling.js', 'obj/equipment.mtl', 'obj/equipment.obj', 'image/equipment.jpg'
リソースの読み込み順序には、 .zip ファイルのパスに相対的な応答リソース。これにより、.zip ファイルを読み取るときに対応するリソース ファイルをすぐに見つけることができます。
2 番目のステップは、JSZip と JSZipUtils ライブラリを HTML ファイルに導入することです。次のステップは、.zip ファイルをリクエストし、.zip ファイルを解析することです。
JSZipUtils.getBinaryContent('res/ImportObj.zip', function(err, data) { if(err) { throw err; // or handle err } var zip = new JSZip(data); var loadorderStr = zip.file('loadorder').asText(), order; eval('order = [' + loadorderStr + ']'); var len = order.length, image = {}, mtlStr = '', objStr = ''; for(var i = 0; i < len; i++) { var fileName = order[i]; if(fileName.indexOf('js/') >= 0) { var js = document.createElement('script'); js.innerHTML = zip.file(fileName).asText(); document.getElementsByTagName('head')[0].appendChild(js); } else if(fileName.indexOf('image/') >= 0) { var buffer = zip.file(fileName).asArrayBuffer(), str = _arrayBufferToBase64(buffer), pIndex = fileName.indexOf('.'), type = fileName.substr(pIndex + 1), re = 'data:image/' + type + ';base64,'; image[fileName] = re + str; } else if(fileName.indexOf('obj/') >= 0) { var str = zip.file(fileName).asText(); if(fileName.indexOf('.mtl') > 0) { mtlStr = str; } else if(fileName.indexOf('.obj') > 0) { objStr = str; } } } init(objStr, mtlStr, image); });
まず、JSZipUtilsを通して.zipファイルを取得し、新しいJSZip(data)メソッドを通して取得したファイルの内容をzip変数にロードし、zip.file(fileName)を通してloadorderファイルの内容を読み取り、試してみてください。 eval コマンドはスクリプトを動的に実行し、テキスト コンテンツを js 変数 order に変換し、最後に order 変数をトラバースすることで js リソースをページに動的に導入します。
.zip ファイル内には画像ファイルが含まれていますが、JSZip は画像ファイルの ArrayBuffer データしか取得できません。このとき、ArrayBuffer をブラウザで認識できるように変換する必要があります。ここで定義されています :_arrayBufferToBase64
function _arrayBufferToBase64( buffer ) { var binary = ''; var bytes = new Uint8Array( buffer ); var len = bytes.byteLength; for (var i = 0; i < len; i++) { binary += String.fromCharCode( bytes[ i ] ); } return window.btoa( binary ); }
この場合、3D モデル データと HT 3D トポロジ アプリケーションの組み合わせが含まれます。ファイルの読み取り中に、.zip ファイル内の obj ディレクトリに 3D モデル データが保存されます。 3D モデル データはテキスト ペアの形式で読み取られて変数に格納され、その後データが init 関数に渡され、3D モデル データが ht.Default.parseObj() メソッドを通じて HT にロードされます。 。
function init(objStr, mtlStr, image) { dataModel = new ht.DataModel(); g3d = new ht.graph3d.Graph3dView(dataModel); view = g3d.getView(); view.className = 'main'; document.body.appendChild(view); window.addEventListener('resize', function (e) { g3d.invalidate(); }, false); g3d.setEye([0, 500, 1000]); g3d.setCenter([0, 200, 0]); g3d.setGridVisible(true); g3d.setGridColor('#74AADA'); var param = { shape3d: 'E1', center: true, cube: true }; var modelMap = ht.Default.parseObj(objStr, mtlStr, param); for(var model in modelMap) { var map = modelMap[model], i = map.image, index = i.lastIndexOf('/'), fileName = i.substr(index + 1), rawS3 = map.rawS3; for(var imgName in image) { if(imgName.indexOf(fileName) >= 0) { ht.Default.setImage(i, 256, 256, image[imgName]); } } } var node = new ht.Node(); node.s({ 'shape3d': 'E1', 'wf.visible': 'selected', 'wf.width': 3, 'wf.color': '#F7F691' }); node.s3(param.rawS3); node.p3(0, param.rawS3[1]/2, 0); dataModel.add(node); }
上記は、3Dトポロジ、3Dモデルの導入、リファレンス3Dモデル作成トポロジノードを生成するコードです。 setImage コードに特別な注意が必要なのは、なぜ画像のファイル名を決定する必要があるのでしょうか? それは、mtl 3D モデル記述ファイルにテクスチャを設定するための 属性があるためです。ファイルの絶対パスも指定できます。JSZip は .zip 内のファイルの内容をローカル ディレクトリに書き戻すことができないため、HT ではテクスチャ属性に対応する属性名のみを設定できます。 HT 。HT モデルがロードされると、モデルに必要な画像リソースを取得できます。 HT 3D トポロジの適用については、「3D トポロジ自動レイアウト - Node.jsPart 」を参照してください。
JSZipデータを圧縮または解凍するときに、速度が遅い場合は、Web Worker の使用を検討できます。
以上がHTML5におけるZip圧縮・解凍技術の適用コード例(写真)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

Web標準とテクノロジーは、これまでにHTML4、CSS2、および単純なJavaScriptから進化し、重要な開発を受けてきました。 1)HTML5は、CanvasやWebstorageなどのAPIを導入し、Webアプリケーションの複雑さと互換性を高めます。 2)CSS3はアニメーション関数とトランジション関数を追加して、ページをより効果的にします。 3)JavaScriptは、矢印関数やクラスなど、node.jsおよびES6の最新の構文を通じて開発効率とコードの読みやすさを向上させます。これらの変更により、パフォーマンスの最適化とWebアプリケーションのベストプラクティスの開発が促進されました。

H5はHTML5の略語だけでなく、より広い最新のWeb開発テクノロジーエコシステムを表しています。1。H5にはHTML5、CSS3、JavaScript、および関連するAPIおよびテクノロジーが含まれます。 2.より豊かでインタラクティブでスムーズなユーザーエクスペリエンスを提供し、複数のデバイスでシームレスに実行できます。 3. H5テクノロジースタックを使用して、レスポンシブWebページと複雑なインタラクティブ機能を作成できます。

H5とHTML5は、同じこと、つまりHTML5を参照します。 HTML5はHTMLの5番目のバージョンであり、セマンティックタグ、マルチメディアサポート、キャンバスとグラフィックス、オフラインストレージ、ローカルストレージなどの新しい機能をもたらし、Webページの表現力と互換性を向上させます。

H5ReferStoHtml5、apivotaltechnologyinwebdevelopment.1)html5introduceSnewelementsandapisforrich、dynamicwebapplications.2)Itupp ortsmultimediawithoutplugins、endancingurexperiencecrossdevices.3)semanticelementsimprovecontentstructurendseo.4)H5'srespo

H5開発で習得する必要があるツールとフレームワークには、Vue.JS、React、Webpackが含まれます。 1.Vue.jsは、ユーザーインターフェイスの構築に適しており、コンポーネント開発をサポートします。 2.複雑なアプリケーションに適した仮想DOMを介したページレンダリングを最適化します。 3.Webpackは、モジュールのパッケージングに使用され、リソースの読み込みを最適化します。

html5hassificlytransformdedwebdeveverment byintroducingsingingelements、endincemultimediasupport、およびrequrovingperformance.1)itmadewebsitesmoreaccessibleandseo-frendlywithsemantelementslike、and.2)

H5は、セマンティック要素とARIA属性を介して、WebページのアクセシビリティとSEO効果を改善します。 1.使用などを使用して、コンテンツ構造を整理し、SEOを改善します。 2。ARIA-LabelなどのARIA属性はアクセシビリティを強化し、支援技術ユーザーはWebページをスムーズに使用できます。

「H5」と「HTML5」はほとんどの場合同じですが、特定の特定のシナリオでは異なる意味を持つ可能性があります。 1。「HTML5」は、新しいタグとAPIを含むW3C定義標準です。 2。 "H5"は通常、HTML5の略語ですが、モバイル開発では、HTML5に基づくフレームワークを参照する場合があります。これらの違いを理解することは、プロジェクトでこれらの用語を正確に使用するのに役立ちます。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

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

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

WebStorm Mac版
便利なJavaScript開発ツール
