From c6567b8948d5270b4408be3d469276dc78a08974 Mon Sep 17 00:00:00 2001 From: zixu Date: Thu, 29 Aug 2024 09:38:47 +0800 Subject: [PATCH] =?UTF-8?q?=E5=89=8D=E7=AB=AF=E7=95=8C=E9=9D=A2=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E9=98=B2=E6=8A=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/app.ts | 2 +- package.json | 5 +++-- src/App.tsx | 23 +++++++++++++++++++++-- vite.config.ts | 2 -- 4 files changed, 25 insertions(+), 7 deletions(-) diff --git a/backend/app.ts b/backend/app.ts index 73de1c6..46a8269 100644 --- a/backend/app.ts +++ b/backend/app.ts @@ -98,7 +98,7 @@ const corsMiddleware: cMiddleware = async (req, res, next) => { }; const fontApiMiddleware: cMiddleware = async (req, res, next) => { // 创建一个新的 URL 对象(需要一个完整的 URL,必须包含协议和主机) - const url = new URL(req.url, "http://test.com"); + const url = new URL(req.url, "https://webfont.shenzilong.com"); if (!url.pathname.startsWith("/api")) return next(req, res); const params = new URLSearchParams(url.search); const font = params.get("font") || ""; diff --git a/package.json b/package.json index 3d64a07..841235a 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "webfont", "private": true, - "version": "1.0.2", + "version": "1.0.3", "type": "module", "scripts": { "dev": "vite", @@ -9,7 +9,8 @@ "build_backend": "tsup && ./llrt compile ./dist_backend/app.cjs ./dist_backend/app.lrt", "docker_build": "docker build -t llej0/web-font:${npm_package_version} -t llej0/web-font:latest .", "docker_push": "docker push llej0/web-font:${npm_package_version} && docker push llej0/web-font:latest", - "preview": "vite preview" + "preview": "vite preview", + "release":"pnpm build && pnpm build_backend && pnpm docker_build && pnpm docker_push" }, "dependencies": { "fonteditor-core": "^2.4.1", diff --git a/src/App.tsx b/src/App.tsx index eb64eed..4ac7805 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,4 +1,4 @@ -import { createMemo, createSignal } from "solid-js"; +import { createMemo, createSignal, type Accessor } from "solid-js"; function App() { const [text, set_text] = createSignal("天地无极,乾坤借法"); @@ -19,6 +19,7 @@ function App() { } `, ); + const throttledSetMemo = useThrottledMemo(() => style(), 1000); return (

@@ -34,9 +35,27 @@ function App() {

{""}
- + ); } export default App; + +function useThrottledMemo(fn: () => T, delay: number): Accessor { + const [throttledValue, setThrottledValue] = createSignal(fn()); + let timeoutId: ReturnType | null = null; + + createMemo(() => { + const value = fn(); + if (timeoutId === null) { + setThrottledValue(value); + timeoutId = setTimeout(() => { + timeoutId = null; + setThrottledValue(fn()); + }, delay); + } + }); + + return throttledValue; +} \ No newline at end of file diff --git a/vite.config.ts b/vite.config.ts index f488189..136dfd0 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,13 +1,11 @@ import { defineConfig } from "vite"; import solid from "vite-plugin-solid"; -import {} from "fs"; export default defineConfig({ plugins: [solid()], server: { host: "0.0.0.0", proxy: { - // with options "/api": { target: "http://localhost:8087", changeOrigin: true,