我一直认为JavaScript是任何Web应用程序的客户端的一个很好的补充(或者更确切地说,在过去的几年中,作为必备).即使我开始使用Mootools,它远离DOM操作,并且针对一个通用的OO框架,我仍然认为我不会考虑使用JavaScript进行服务器端开发.JavaScript属于前面,期间 - 这就是我的想法.
嗯,似乎根据一些该死的聪明人,我错了.有史以来第一次,名为Plat_Form的Web开发平台竞赛接受了一个在服务器端和客户端都使用纯JavaScript的团队.更重要的是,以下是比赛组织者对此的评价:
" 我们只有一个团队的应用程序,Upstream Agile,可以在服务器和客户端使用JavaScript.由于这可能成为未来几年的主要趋势,我们认为他们的参与是对未来的一瞥并接受这一点即使没有其他人使用这个平台,团队仍然适用. "
所以我的问题是:这真的是一个可行的概念,纯粹基于JavaScript构建多层Web应用程序吗?如果是这样,那么在前端和后端使用JavaScript会有什么好处?
编辑: Vanwaril的答案中的链接(为什么node.js非常棒)在评论部分中展示了一个值得一读的有趣讨论.我认为,虽然在服务器端使用Javascript是一个可行的概念并且可能有其好处,但我绝对不会开始使用该架构构建企业应用程序.至少现在(是.这个问题可能需要在一年内再次提出,我可以想象答案在不久的将来会发生巨大变化.
javascript web-applications server-side serverside-javascript
我有以下代码块:
try {
URL url = new URL("http://site-to-test.com/nonexistingpage.html");
HttpURLConnection urlc = (HttpURLConnection) url.openConnection();
urlc.setRequestProperty("User-Agent", CoreProtocolPNames.USER_AGENT);
urlc.setRequestProperty("Connection", "close");
urlc.setConnectTimeout(500); // timeout is in milliseconds
urlc.connect();
if (urlc.getResponseCode() == 404) {
// Server was reachable
Log.i(TAG, "Server is reachable");
}
} catch (MalformedURLException mue) {
Log.e(TAG, "MalformedURLException: " + mue.getMessage());
} catch (IOException e) {
Log.e(TAG, "IOException: " + e.getMessage());
}
Run Code Online (Sandbox Code Playgroud)
当site-to-test
通过当前网络无法访问域时,此代码会在接收之前阻塞大约30-40秒IOException
.我特意将超时值设置为500毫秒.我在这里错过了什么?无论网络状态和网站的可用性如何,上述块都不应该在半秒内终止?
在哪个git版本成为git config --local
可用选项,我在哪里可以阅读更多相关信息?
我认为不提供--global
将自动假设它是一个本地配置变量.为什么这个新选项是必要的?
我有一个IntentService类,可以从复杂应用程序中的各个位置启动 - 活动,后台线程,其他服务.我想知道调用服务的次数.我在我的IntentService类中使用私有int变量来跟踪它,我从我的onStartCommand(...)方法中增加它.
它只是发生在我身上,因为可以从各种异步线程调用onStartCommand(...)方法,这可能不是一个线程安全的解决方案.所以问题是,我是否需要在同步块中包含对此计数器变量的访问,或者onStartCommand(...)的IntentService实现是否为我处理这个问题?
作为一个注释,我知道我可以安全地从onHandleIntent(...)增加变量,但我需要计算实际请求而不是执行的意图.
我正在使用sharp来调整写入Node.js
/ Express
application中的上传图像的大小Typescript
.成功调整大小后,我想删除原始文件.对于png
和gif
输入图像,操作成功终止,我有调整大小的图像,原始文件被删除.对于jpg
和tif
图像,调整大小成功,但unlink
命令失败并出现以下错误:
EBUSY:资源繁忙或已锁定,取消链接'...'
仿佛sharp().resize()
仍然保持锁定输入文件,甚至调整大小操作完成后.
以下是测试所描述行为的代码:
import { existsSync, unlinkSync } from "fs";
import { normalize, parse } from "path";
var argv = require("yargs").argv;
var sharp = require("sharp");
var appRoot = require("app-root-path") + "/";
let resizeTest = async function (filename: string): Promise<boolean> {
try {
let nameParts = parse(filename);
let source = appRoot + filename;
let destination = appRoot + nameParts.name + …
Run Code Online (Sandbox Code Playgroud) 我需要在 Windows 上为不同的项目运行 Dart 1.24.2
SDK 2.0.0
。不幸的是,当使用社区支持的安装程序时,它会覆盖任何以前的版本,并且不支持在不同位置安装。我发现这个Dart 版本管理器看起来很有前途,但没有运气:
$ pub global activate dvm
Resolving dependencies...
Package dvm requires SDK version >=1.22.0 <2.0.0 but the current SDK is 2.0.0.
Run Code Online (Sandbox Code Playgroud)
当我实际运行 1.24.2 时:
$ dart --version
Dart VM version: 1.24.2 (Thu Jun 22 08:55:56 2017) on "windows_x64"
Run Code Online (Sandbox Code Playgroud)
有没有一种简单的方法可以实现这一目标?另外,我需要一种简单的方法来在 IntelliJ 中的 SDK 版本之间进行更改。
我的项目中有几个Activity子类,每个子类都调用一个基于SOAP的Web服务,处理并显示结果.SOAP序列化,调用处理和将结果解析为各种POJO对象都封装在MyWebService类中.该类通过AsyncTask执行实际的Web服务调用.
为了能够将结果传递回调用的Activity子类,我想我强制所有这些活动都应该实现一个WebServiceResultProcessor接口,定义一个函数(processWebServiceResults)作为AsyncTask的回调,从onPostExecute调用.
我还想在Web服务调用期间显示ProgressDialog.这是我的问题.为了能够显示ProgressDialog(来自MyWebService或它的AsyncTask),我需要传递对调用者Activity的Context的引用.并且为了能够从AsyncTask执行回调函数,我还需要传递相同的对象引用,但这次是作为WebServiceResultProcessor.这在我看来是一种代码气味,两次传递相同的物体,但是看不到任何方法.我可以创建一个新的基类,扩展Activity类并从扩展类强制继承,而不是接口,但这意味着我将使用此MyWebService类排除ListActivity等.
有一个更好的方法吗?
android design-patterns reusability android-asynctask android-activity
在某些情况下,我需要从客户端断开长轮询http请求.我对服务器的HttpUrlConnection的相关部分如下(以下所有代码都在Thread的run()方法中):
try {
URL url = new URL(requestURL);
connection = (HttpURLConnection) url.openConnection();
connection.setRequestProperty("Accept-Charset", "UTF-8");
connection.setConnectTimeout(5 * 1000);
connection.setReadTimeout(60 * 1000);
connection.setRequestMethod("GET");
// read the output from the server
reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
StringBuilder stringBuilder = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
stringBuilder.append(line + "\n");
}
Log.d(TAG, stringBuilder);
} catch (IOException ioe) {
Log.e(TAG, ioe);
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException ioe) {
ioe.printStackTrace();
} …
Run Code Online (Sandbox Code Playgroud) 我正在 Angular(Dart 风格)中实现一个材质横幅组件,详细描述如下:https : //material.io/components/banners
除了这个行为部分,我几乎完全符合规范:https : //material.io/components/banners/#behavior
即:
屏幕加载后出现的横幅应从布局顶部开始在屏幕上显示动画。如果横幅与内容处于同一高度,则会将内容向下推。
所以如果我理解正确的话,横幅应该是正常布局流程的一部分,应该在出现时设置动画和下推内容,并且在向下滚动页面时也应该是粘性的(到顶部)。我只是无法找到满足所有这些要求的 CSS 属性和/或 Javascript 补充代码的组合。
到目前为止我尝试过的:
banner {
position: sticky;
top: 0;
transition: transform 0.3s ease;
transform: translateY(-100%);
&.show {
transform: translateY(0);
}
}
Run Code Online (Sandbox Code Playgroud)
这满足了页面向下滚动时的粘性要求,横幅本身在出现和消失时具有动画效果,但是当不可见时,它会在布局中留下间隙。这是预期的,因为 CSS 转换不会影响正常流程(https://www.w3.org/TR/css-transforms-1/#transform-rendering)
如果我将sticky
定位更改为绝对,它不会在流程中留下间隙,但它会充当叠加层,并且在缓入时不会下推内容。在这种情况下,我也失去了粘性功能(但这可以解决通过基于当前滚动值的元素的 Javascript 调整)。
我已经尝试了max-height
为横幅属性设置动画的可怕技巧,如此处所建议的:https : //stackoverflow.com/a/8331169/405481
我也尝试将其与 translateY 动画结合使用,但没有任何摆弄导致平滑滚动,同时推拉下面的内容。
所以。有没有办法在 HTML/CSS/Javascript 域中实现上述行为?
我有以下HTML代码段:
<span class="target">Change me <a class="changeme" href="#">now</a></span>
Run Code Online (Sandbox Code Playgroud)
我想从jQuery中更改跨度内的文本节点(即"更改我"),同时保留嵌套<a>
标签的所有属性等等.我最初的抱怨是.text(...)
在span节点上使用,但事实证明这将用传递的文本内容替换整个内部部分.
我解决了这个问题,首先克隆了<a>
标签,然后设置了新的文本内容<span>
(将删除原始<a>
标签),最后将克隆的<a>
标签附加到我的标签上<span>
.这样可行,但对于像这样的简单任务感觉有点过分.顺便说一句.我不能保证跨度内会有一个初始文本节点 - 它可能是空的,就像:
<span class="target"><a class="changeme" href="#">now</a></span>
Run Code Online (Sandbox Code Playgroud)
我也做了一个jsfiddle.那么,这样做的巧妙方法是什么?
Java脚本:
class MyClass {
constructor() {
console.log("MyClass instance created");
this.answer = 42;
}
}
let example = new MyClass();
console.log(example.answer);
Run Code Online (Sandbox Code Playgroud)
镖:
@JS()
library interop_test;
import 'package:js/js.dart';
@JS()
class MyClass {
external int get answer;
external set answer(int value);
}
Run Code Online (Sandbox Code Playgroud)
创建互操作类的实例MyClass
为
MyClass myClass = MyClass();
Run Code Online (Sandbox Code Playgroud)
结果是:
异常:类型错误:dart.global.MyClass 不是构造函数
我还尝试将 和 添加external MyClass();
到external factory MyClass();
带@JS()
注释的类中,但收到了相同的消息。如果我@anonymous
向互操作类添加注释,异常就会消失,但我无法访问实例成员。(但我不明白为什么这需要匿名注释)
我正在使用dart 2.0.0
、angular 5.0.0
和js 0.6.1+1
通过dartdevc
。webdev
我想检测鼠标在整个文档正文中的移动,并能够准确判断我将鼠标悬停在DOM的哪一部分。“哪个部分”是指鼠标当前位于其最里面的DOM元素。
我可以将鼠标悬停在整个文档主体上,但是$(this)将给我$(body),而不是最里面的元素。或者,我可以递归遍历整个DOM并将鼠标悬停在每个元素上,但这将是对IMO的严重破坏。
有没有简单的方法可以做到这一点?
android ×4
javascript ×4
dart ×2
html ×2
jquery ×2
css ×1
disconnect ×1
dom ×1
git ×1
git-config ×1
hover ×1
mouseevent ×1
node.js ×1
reusability ×1
server-side ×1
sharp ×1
timeout ×1
typescript ×1
unlink ×1