PageSourceSearch

https://www.pplp.info/brand/?type=psu

html pplp.info collected 2026-10-05 23:23:12 UTC 12,557 bytes, 292 lines download raw bytes

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 &copy; <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.