还在用response.write?高手教你更优替代方案!

吉云

今天跟大家唠唠我最近鼓捣的 `*`,这玩意儿看着简单,但用起来门道还真不少。

事情是这样的,前几天接了个小活儿,需要在网页上实时显示一些数据。一开始我寻思直接用 `*` 完事儿,简单粗暴。结果一试,发现这玩意儿会把整个页面都给刷掉,体验太差了!

赶紧上网查资料,这才知道 `*` 是服务器端用的,主要用来往客户端发送数据。既然客户端的不行,那就试试服务器端的。

还在用response.write?高手教你更优替代方案!

我用的是 *,所以直接在代码里写了 `*("Hello, World!")`。然后在浏览器里跑了一下,成了!页面上直接显示了 "Hello, World!",而且没有刷新整个页面。

但是问题又来了,我要显示的是动态数据,总不能每次都手动改代码?这不得累死!于是我就想,能不能把数据放到一个变量里,然后用 `*` 输出这个变量?

试了一下,果然可以!我先从数据库里读取数据,然后把数据放到一个字符串变量里,用 `*(myString)` 把字符串输出到页面上。

csharp

// 从数据库读取数据

string myString = GetDataFromDatabase();

还在用response.write?高手教你更优替代方案!

// 输出到页面

*(myString);

这样一来,只要数据库里的数据更新,页面上的数据也会跟着更新,简直完美!

不过在使用 `*` 的时候,我发现还有一个需要注意的地方,那就是编码问题。如果输出的字符串里包含中文,可能会出现乱码。

为了解决这个问题,我需要在 `*` 之前设置一下 ContentType。

还在用response.write?高手教你更优替代方案!

csharp

* = "text/html; charset=utf-8";

*(myString);

这样设置之后,浏览器就能正确地显示中文了。

还有,如果需要输出大量的文本,最好不要使用单个的 `*` 调用来连接字符串。正确的做法是多次调用 `*`。就像这样:

还在用response.write?高手教你更优替代方案!

csharp

*("这是第一段文字");

*("这是第二段文字");

*("这是第三段文字");

据说这样可以提高性能。虽然我没做过详细的测试,但还是按照这个方法来做了。毕竟性能优化这种事情,能做一点是一点嘛

还在用response.write?高手教你更优替代方案!

我还看到网上有人用 `*` 来输出 JavaScript 代码,实现一些更复杂的功能。比如,弹出警告框:

csharp

*("");

不过我个人觉得这种方式不太因为它会把 JavaScript 代码和服务器端代码混在一起,不利于维护。如果需要执行 JavaScript 代码,最好还是用 `*` 或者其他更专业的方法。

`*` 是一个简单但很有用的工具。掌握了它的基本用法和注意事项,就可以在 * 开发中更加得心应手。

还在用response.write?高手教你更优替代方案!

这回的实践就分享到这里,希望对大家有所帮助。下次再遇到什么好玩的东西,再来跟大家唠嗑!

免责声明:由于无法甄别是否为投稿用户创作以及文章的准确性,本站尊重并保护知识产权,根据《信息网络传播权保护条例》,如我们转载的作品侵犯了您的权利,请您通知我们,请将本侵权页面网址发送邮件到qingge@88.com,深感抱歉,我们会做删除处理。

目录[+]