1<!DOCTYPE html> 2<html lang=""> 3 4<head> 5 6 <meta charset="utf-8"> 7 <title>Pro Performance Level Plan</title> 8 <meta name="description" content=""> 9 <meta name="author" content=""> 10 11 <meta name="viewport" content="width=device-width, initial-scale=1"> 12 13 <!-- CSS --> 14 <link rel="stylesheet" href="../css/historystyle.css"> 15 <link rel="stylesheet" href="../css/powercer.css?0826"> 16 <link rel="stylesheet" href="../css/base.css"> 17 <link rel="stylesheet" href="../css/vendor.css"> 18 <link rel="stylesheet" href="../css/main.css?20260910-ai-panel-scroll-v17"> 19 <link rel="stylesheet" href="../css/swiper.css?0911"> 20 <link rel="stylesheet" href="../css/toast.css?0911"> 21 <link rel="stylesheet" href="../css/cmzInput.css?0911"> 22 <link rel="stylesheet" href="brand.css?0911"> 23 24 <!-- favicons --> 25 <link rel="shortcut icon" href="../favicon.ico" type="image/x-icon"> 26 <link rel="icon" href="../favicon.ico" type="image/x-icon"> 27 28
28<script> 29 if (!(new URLSearchParams(window.location.search).get("brand") || "").trim()) { 30 document.documentElement.classList.add("brand-overview-page"); 31 } 32 </script>
32 33 34
34<script> 35 var _hmt = _hmt || []; 36 (function () { 37 var hm = document.createElement("script"); 38 hm.src = "https://hm.baidu.com/hm.js?26198db7f6242a852264bc76b1d1ff9a"; 39 var s = document.getElementsByTagName("script")[0]; 40 s.parentNode.insertBefore(hm, s); 41 })(); 42 </script>
42 43</head> 44 45<body> 46 <!-- preloader 47 ================================================== --> 48 <div id="preloader"> 49 <div id="loader" class="dots-jump"> 50 <div></div> 51 <div></div> 52 <div></div> 53 </div> 54 </div> 55 56 <!-- æ§å¶é¢æ¿ --> 57 <!-- <div class="control-panel"> 58 <label>å¡çæ°é:</label> 59 <input type="range" id="cardNumSlider" min="2" max="5" value="2"> 60 <span class="value" id="cardNumValue">2</span> 61 </div> --> 62 63 <!-- å·¦ä¸è§Logo --> 64 <div class="corner-logo" style="z-index: 999;"> 65 <a class="site-logo" href="https://www.pplp.info" target="_blank"> 66 <img src="../images/logo.png" title="Pro Performance Level Plan"> 67 </a> 68 </div> 69 70 <!-- å³ä¸è§æä½ --> 71 <div class="brand-page-actions"> 72 <a id="brandIndexLink" class="lang-toggle brand-index-link" href="https://www.pplp.info/brand/index.html" 73 target="_blank" rel="noopener" title="è¿åæçº§åº" aria-label="è¿åæçº§åº" hidden> 74 <svg viewBox="0 0 24 24" aria-hidden="true"> 75 <path d="M19 12H5m6-6-6 6 6 6" /> 76 </svg> 77 </a> 78 <div id="commentbk"> 79 <input exptips="䏿 / English" style-mtips="2" onclick="langchange()" id="bkcheck" type="checkbox" 80 class="checke"> 81 </div> 82 </div> 83
83<script> 84 if (!document.documentElement.classList.contains("brand-overview-page")) { 85 document.getElementById("brandIndexLink").hidden = false; 86 } 87 </script>
87 88 <a id="backToTopBtn" class="back-to-top" href="javascript:" title="åå°é¡¶é¨"> 89 <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"> 90 <path d="M12 18V6M6.5 11.5L12 6l5.5 5.5" /> 91 </svg> 92 </a> 93 <nav id="quickSectionNav" class="quick-section-nav" aria-label="å¿«éå®ä½"> 94 <a class="quick-section-nav-button" href="javascript:" data-section-id="psu-section" 95 data-section-type="psu">PSU</a> 96 <a class="quick-section-nav-button" href="javascript:" data-section-id="case-section" 97 data-section-type="case">Case</a> 98 <a class="quick-section-nav-button" href="javascript:" data-section-id="fan-section" 99 data-section-type="fan">Fan</a> 100 </nav> 101 102 <!-- åçHeroåºå --> 103 <section class="brand-hero"> 104 <!-- é¡¶é¨Logo --> 105 <div class="brand-header"> 106 <div class="brand-logo"> 107 <img src="" title=""> 108 </div> 109 <h1 class="brand-name"></h1> 110 <p class="brand-tagline"></p> 111 </div> 112 113 <!-- æ°æ®å¡ç --> 114 <div class="stats-grid" id="statsGrid"></div> 115 116 <!-- åçå表ï¼ä» åçæ»è§é¡µæ¾ç¤ºï¼ --> 117 <div id="brandDirectory" class="brand-directory" hidden> 118 <div id="brandDirectoryTitle" class="brand-directory-title"></div> 119 <div id="brandDirectoryList" class="brand-directory-list"></div> 120 </div> 121 122 <!-- 产åæç´¢ --> 123 <div class="product-search" id="productSearch"> 124 <input id="productSearchInput" class="product-search-input" type="search" autocomplete="off" 125 spellcheck="false" aria-autocomplete="list" aria-controls="productSearchSuggestions" 126 aria-expanded="false"> 127 <button id="productSearchClear" class="product-search-clear" type="button" hidden></button> 128 <div id="productSearchSuggestions" class="product-search-suggestions" role="listbox"></div> 129 </div> 130 131 <!-- å䏿»å¨æç¤º --> 132 <div class="scroll-hint"> 133 <span class="enzh"> 134 <enzh>å䏿»å¨^Scroll Down</enzh> 135 </span> 136 <svg viewBox="0 0 24 24" fill="none" stroke-width="2"> 137 <path d="M7 13l5 5 5-5M7 6l5 5 5-5" /> 138 </svg> 139 </div> 140 </section> 141 142 <div id="brand-content"> 143 <!-- PSU è¡¨æ ¼ --> 144 <div id="psu-section" class="product-section" style="display:none;"> 145 <div class="section-title-bar" id="psuTitleBar"></div> 146 <div id="listtable-psu" class="fixedtable"></div> 147 </div> 148 <!-- Case è¡¨æ ¼ --> 149 <div id="case-section" class="product-section" style="display:none;"> 150 <div class="section-title-bar" id="caseTitleBar"></div> 151 <div id="listtable-case" class="fixedtable"></div> 152 </div> 153 <!-- Fan è¡¨æ ¼ --> 154 <div id="fan-section" class="product-section" style="display:none;"> 155 <div class="section-title-bar" id="fanTitleBar"></div> 156 <div id="listtable-fan" class="fixedtable"></div> 157 </div> 158 </div> 159 160 <!-- 页è --> 161 <footer class="footer"> 162 <div class="row"> 163 <div class="col-full ss-copyright"> 164 <span>Copyright © <span id="copyrightYear"></span> PPLP.INFO 165 </span> 166 </div> 167 <div class="goodday"></div> 168 </div> 169 </footer> 170 171
171<script> 172 (function () { 173 var cacheDate = new Date(); 174 var cacheVersion = cacheDate.getDate() + "" + cacheDate.getHours() + "" + Math.round(cacheDate.getMinutes() / 10); 175 var isFile = window.location.protocol === "file:"; 176 var host = (window.location.hostname || "").toLowerCase(); 177 var isLocalHost = host === "localhost" || host === "127.0.0.1" || host === "[::1]"; 178 var siteOrigin = isFile ? "" : isLocalHost ? window.location.origin : "https://www.pplp.info"; 179 var jsRoot = isFile ? "../js/" : siteOrigin + "/js/"; 180 var brandRoot = isFile ? "" : siteOrigin + "/brand/"; 181 var scriptTimeout = 4000; 182 var pageFinished = false; 183 window.__pplpDataErrors = window.__pplpDataErrors || []; 184 185 var pageTimer = setTimeout(function () { 186 showFatalError("ç½ç»è¯·æ±è¶ æ¶"); 187 }, 20000); 188 189 function showFatalError(name) { 190 if (pageFinished) return; 191 pageFinished = true; 192 clearTimeout(pageTimer); 193 var content = document.getElementById("brand-content"); 194 if (content) { 195 content.innerHTML = ""; 196 var error = document.createElement("div"); 197 error.className = "brand-data-error"; 198 error.textContent = "页é¢èæ¬å 载失败ï¼" + name + "ï¼è¯·å·æ°éè¯"; 199 content.appendChild(error); 200 } 201 var preloader = document.getElementById("preloader"); 202 if (preloader) preloader.remove(); 203 } 204 205 function getUrls(path) { 206 return [path, path + "?" + cacheVersion]; 207 } 208 209 function loadResource(resource, urlIndex, done) { 210 if (urlIndex >= resource.urls.length) { 211 done(false); 212 return; 213 } 214 215 var script = document.createElement("script"); 216 var settled = false; 217 var timer = setTimeout(function () { 218 if (settled) return; 219 settled = true; 220 script.onload = null; 221 script.onerror = null; 222 script.remove(); 223 loadResource(resource, urlIndex + 1, done); 224 }, scriptTimeout); 225 226 script.src = resource.urls[urlIndex]; 227 script.async = false; 228 script.onload = function () { 229 if (settled) return; 230 settled = true; 231 clearTimeout(timer); 232 if (resource.validate && !resource.validate()) { 233 script.remove(); 234 loadResource(resource, urlIndex + 1, done); 235 return; 236 } 237 done(true); 238 }; 239 script.onerror = function () { 240 if (settled) return; 241 settled = true; 242 clearTimeout(timer); 243 script.remove(); 244 loadResource(resource, urlIndex + 1, done); 245 }; 246 document.head.appendChild(script); 247 } 248 249 var resources = [ 250 { name: "jquery-3.2.1.min.js", urls: getUrls(jsRoot + "jquery-3.2.1.min.js").concat(["https://code.jquery.com/jquery-3.2.1.min.js"]), validate: function () { return typeof window.jQuery === "function"; } },
251 { name: "mtips.js", urls: getUrls(jsRoot + "mtips.js"), validate: function () { return typeof window.BrandCE !== "undefined"; } }, 252 { name: "language.js", urls: getUrls(brandRoot + "language.js"), validate: function () { return typeof window.getPplpLanguage === "function" && typeof window.langchange === "function"; } }, 253 { name: "ttTable.js", urls: getUrls(jsRoot + "ttTable.js"), validate: function () { return typeof window.Table === "function" && typeof window.curymd === "function"; } }, 254 { name: "psudata.js", urls: getUrls(jsRoot + "psudata.js"), validate: function () { return typeof window.psuinfo === "string"; } }, 255 { name: "fandata.js", urls: getUrls(jsRoot + "fandata.js"), validate: function () { return typeof window.faninfo === "string"; } }, 256 { name: "casedata.js", urls: getUrls(jsRoot + "casedata.js"), validate: function () { return typeof window.caseinfo === "string"; } }, 257 { name: "powerbrandlib.js", urls: getUrls(jsRoot + "powerbrandlib.js"), validate: function () { return typeof window.getReportData === "function"; } },
258 { name: "brand.js", urls: getUrls(brandRoot + "brand.js"), validate: function () { return typeof window.goBrandPage === "function"; } } 259 ]; 260 261 function loadNext(index) { 262 if (pageFinished) return; 263 if (index >= resources.length) { 264 pageFinished = true; 265 clearTimeout(pageTimer); 266 var year = document.getElementById("copyrightYear"); 267 if (year) year.textContent = new Date().getFullYear(); 268 return; 269 } 270 loadResource(resources[index], 0, function (success) { 271 if (!success) { 272 window.__pplpDataErrors.push(resources[index].name); 273 showFatalError(resources[index].name); 274 return; 275 } 276 loadNext(index + 1); 277 }); 278 } 279 280 loadNext(0); 281 })(); 282 </script>
282 283
283<script> 284 window.PPLP_AI_CONFIG = { 285 assetRoot: "https://ai.pplp.info/pplp-ai/" 286 }; 287 </script>
287 288
288<script src="https://ai.pplp.info/pplp-ai/entry.js?0911" defer></script>
288 289 290</body> 291 292</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.