我有一個相當大的XML文件(大約42MB),我用jquery解析。我需要根據ID有選擇地顯示某些節點。通過這樣做,Web瀏覽器變得無響應,並且平均分析時間大於15秒。用jquery解析XML或JSON
我的查詢是否將這個大的XML文件轉換爲JSON,有助於提高性能?以下是XML的示例。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE thesaurus SYSTEM "Thesaurus_1_4.dtd">
<thesaurus action="ExportLanguage" language="en" version="2.7" date="2011-08-15">
<options/>
<wordblocks>
<wordblock>
<term type="forbidden" lang="en" termid="18297">
<value>1,1-DIETHOXYETHANE</value>
</term>
<terms>
<term rel="USE" lang="en" termid="30" type="valid">
<value>ACETAL</value>
</term>
</terms>
</wordblock>
<wordblock>
<term type="forbidden" lang="en" termid="18307">
<value>1,2,3-PROPANETRIOL</value>
</term>
<terms>
<term rel="USE" lang="en" termid="4028" type="valid">
<value>GLYCEROL</value>
</term>
</terms>
</wordblock>
<wordblock>
<term type="forbidden" lang="en" termid="18308">
<value>1,2,3-TRIHYDROXYBENZENE</value>
</term>
<terms>
<term rel="USE" lang="en" termid="8094" type="valid">
<value>PYROGALLOL</value>
</term>
</terms>
</wordblock>
<wordblock>
<term type="forbidden" lang="en" termid="18309">
<value>1,2,4,5-TETRAMETHYLBENZENE</value>
</term>
<terms>
<term rel="USE" lang="en" termid="2814" type="valid">
<value>DURENE</value>
</term>
</terms>
</wordblock>
<wordblock>
<term type="forbidden" lang="en" termid="18298">
<value>1,2-DIHYDROXYANTHRAQUINONE</value>
</term>
<terms>
<term rel="USE" lang="en" termid="229" type="valid">
<value>ALIZARIN</value>
</term>
</terms>
</wordblock>
</wordblocks>
</thesaurus>
和這裏的AJAX調用XML
LoadRelatedTerms = function (term) {
$.ajax({
type: "GET",
url: "THESAURUS.xml",
dataType: "xml",
success: function (xml) {
$('.items').html('');
$(xml).find('wordblock').each(function() {
$(this).children('term').each(function() {
var value = $(this).find('value').text();
if (value == term) {
$(this).parent().children('terms').children('term[level=1]').each(function() {
var id = $(this).attr('id');
var termValue = $(this).find('value').text();
$('<div class="items" id="term' + id + '"></div>').html(termValue).appendTo('#page-wrap');
});
return false;
}
});
});
}
});
同意,我正在評估做客戶端與服務器端的性能。在服務器端,我需要查詢超過30萬條記錄的相當複雜的數據庫。此外,數據庫位於另一個數據庫服務器上,而不是應用程序的數據庫服所以,服務器端也有性能開銷。 – itsbalur
對不起,我不清楚這個問題。 XML文件位於服務器上。正在發生Ajax調用,HTML正在客戶端上更新。即使如此,表現並不好。 – itsbalur
我說的是通過網絡傳輸42MB文件並不理想,然後解析它。在服務器上處理它可能會更好,然後返回HTML並且不在客戶端處理HTML – momo