我尝试PGP加密字符串客户端当用户点击一个按钮,这似乎是超级慢。首先,当运行在调试/开发模式与trunk serve --open
它需要时间来加载页面与下面的代码。如果我编译在生产模式trunk build --release
,那么它的速度更快,但仍然加载慢得多(~3- 5秒)相比,JavaScript等效。
1.我如何运行一个需要更长时间在Leptos中处理的任务,因为下面的代码会冻结UI几秒钟。
1.有什么想法我可以让它运行得更快吗?我希望它在速度方面与JavaScript版本相似。
use base64::{engine::general_purpose, Engine as _};
use leptos::*;
use sequoia_openpgp::serialize::stream::{Encryptor, LiteralWriter, Message};
use std::io::Write;
#[component]
pub fn App() -> impl IntoView {
let (data, set_data) = create_signal("".to_string());
view! {
<div>
<pre>{move || data.get()}</pre>
<button on:click=move |_| {
let mut sink = vec![];
let message = Encryptor::with_passwords(Message::new(&mut sink), Some("password"))
.build()
.unwrap();
let mut w = LiteralWriter::new(message).build().unwrap();
let _ = w.write_all(b"Hello world.");
let _ = w.finalize();
let b64 = general_purpose::STANDARD.encode(sink);
set_data.set(b64.clone());
}
>
"Encrypt"
</button>
</div>
}
}
pub fn main() {
mount_to_body(|| {
view! {
<App />
}
})
}
字符串
1条答案
按热度按时间gxwragnw1#
不幸的是,我不太了解加密,但这可以帮助你: