小编Mik*_* B.的帖子

如果在WPF 4.0中使用启动画面,带有异常详细信息的MessageBox会立即消失

我的基于桌面的WPF应用程序(4.0)与DB一起使用,为此,它应该在应用程序的启动时与SQL Server建立连接.当然,这个操作需要一些时间,用户必须等待几秒钟(3-5),同时.Net Framework启动并连接到SQL Server.

在这种情况下,我决定使用闪屏.我在解决方案中添加了一些图片,将构建操作设置为"启动画面",编译了我的应用程序,它的工作原理!如果连接到SQL Server的尝试失败(例如服务器不可用),我的应用程序会抛出异常并向用户显示MessageBox警告和异常详细信息,用户按OK和应用程序关闭(Application.Current.Shutdown()).

在我添加启动画面之前,所有这些逻辑用于完美地工作,但是现在,添加了启动画面,如果我在SQL Server不可用时运行应用程序,应用程序会抛出异常(正如我在我的代码中提到的那样),但是MessageBox出现了通知1-2秒并且在没有任何用户交互的情况下消失,用户甚至无法读取其上写的内容.

我发现,如果我尝试显示2 MessagBoxes,那么第一个将立即出现并消失,但第二个将保持到用户将按OK.

我的问题是:如何解决这个问题?我想使用启动画面并MessageBox在抛出异常时显示一个并让用户决定何时关闭它(用户单击"确定"按钮).

这是一个描述我的应用程序逻辑的流程图:

没有例外(好的场景):运行应用程序→启动画面if(isConnectedToSQL=true)→→显示主窗口...

有异常(错误情况):运行应用程序→启动屏幕→→ if(isConnectedToSQL=false)抛出异常→显示带有异常详细信息的消息框→用户单击确定→关闭应用程序.

.net c# wpf splash-screen

9
推荐指数
1
解决办法
4888
查看次数

Crawler4j与Jsoup一起用于Java中的页面爬行和解析

我想获取页面的内容并提取其中的特定部分.据我所知,至少有两种解决方案可以完成这样的任务:Crawler4jJsoup.

它们都能够检索页面的内容并提取它的子部分.我唯一不明白的是它们之间的区别是什么?有一个类似的问题,标记为已回答:

Crawler4j是一个爬虫,Jsoup是一个解析器.

但我刚刚检查过,除了解析功能外,Jsoup 1.8.3还能够抓取页面,而Crawler4j不仅可以抓取页面而且可以解析其内容.

那么,请你澄清Crawler4j和Jsoup之间的区别吗?

java web-crawler html-parsing jsoup crawler4j

9
推荐指数
1
解决办法
3817
查看次数

Node.js 中的类与模块

我的问题是,如果使用 Node.js 中的类或函数,或者原型和模块更好,我知道大多数使用模块和函数原型,但哪个更好?

而且我们最认为类一直是所有编程语言中最好的工作选择。

node.js

9
推荐指数
2
解决办法
9389
查看次数

__dirname 未在 Node.js 10 实验中定义?

我正在使用 Node.js 10.0.0 & 我的index.mjs样子:

import path from "path";

console.log(__dirname);
Run Code Online (Sandbox Code Playgroud)

在我的终端中,我运行

node --experimental-modules index.mjs
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

(node:3750) ExperimentalWarning: The ESM module loader is experimental.
ReferenceError: __dirname is not defined
at file:///MyFolderPath/node-10/index.mjs:3:21
at ModuleJob.run (internal/modules/esm/module_job.js:106:14)
Run Code Online (Sandbox Code Playgroud)

javascript node.js

9
推荐指数
1
解决办法
6327
查看次数

如何在sapUI XML-View中使用if/else条件?

如何在SapUI5中的XML-View中实现if/else条件,该条件使用来自JSONModel的标志(条件)?

到目前为止我有一个控制器:

sap.ui.define([
    "sap/ui/core/mvc/Controller",
    "sap/ui/model/json/JSONModel"
], function (Controller, JSONModel) {
    "use strict";

    return Controller.extend("sap.ui.demo.myApp.myController", {
        onInit: function () {
            //// set data model on view
            var oData = {
                title: "A cool title",
                values: [{name: "Text 1", marketed: true}, {name: "Text 2", marketed: false}, {name: "Text 3", , marketed: true}]
            };

            var oModel = new JSONModel(oData);
            this.getView().setModel(oModel);
        }
    });
});
Run Code Online (Sandbox Code Playgroud)

和一个视图:

<mvc:View
    controllerName="sap.ui.demo.myApp.myController"
    xmlns="sap.m">

    <!-- using aggregation binding -->
    <Panel expandable="true" expanded="true" headerText="{/title}" width="100%" content="{/values}">
        <content> …
Run Code Online (Sandbox Code Playgroud)

javascript xml sapui5

8
推荐指数
2
解决办法
2万
查看次数

Grunt:cwd的目的是什么?

我知道cwd代表"当前工作目录",但我不明白为什么必须包含在gruntfile.js中.

脚本不会始终在当前工作目录中运行吗?为什么需要更改或指定另一个?

gruntjs

8
推荐指数
1
解决办法
4556
查看次数

尝试/捕捉内部或外部功能

关于使用try/的最佳实践,我有一个非常基本的问题catch.我有一个像这样的简单函数(DAO)

public void addVehicle(Vehicle vehicle) {

    em.getTransaction().begin();
    em.persist(vehicle);
    em.getTransaction().commit();
}
Run Code Online (Sandbox Code Playgroud)

并在Web服务中使用DAO功能:

@WebMethod(operationName = "addVehicle")
public void addVehicle(Vehicle vehicle) {

    try {
        vehicleDAO.addVehicle(vehicle);
        System.out.print("Vehicle added");
    } catch (Exception e) {
        e.printStackTrace();
    }
}
Run Code Online (Sandbox Code Playgroud)

或者更好地使用try/ catch内部DAO函数,如下所示:

public void addVehicle(Vehicle vehicle) {

    try {
        em.getTransaction().begin();
        em.persist(vehicle);
        em.getTransaction().commit();
    } catch (Exception e) {
        e.printStackTrace();
    }
}
Run Code Online (Sandbox Code Playgroud)

java exception try-catch

7
推荐指数
2
解决办法
3085
查看次数

在ABAP中调用方法的不同方法

对不起,这个基本的ABAP问题.在ABAP中调用方法的不同方法有哪些?他们的"官方"名字是什么?我听说过执行,方法调用和内部/内联方法调用.

我猜,Perform使用PERFORM关键字和方法调用CALL METHOD语法.但什么是"内部"或"内联方法调用"?

abap call

7
推荐指数
2
解决办法
3万
查看次数

如何通过绑定node.js-sql中的参数来构建动态查询?

nodejs-mysql最近在node.js中使用模块进行查询,在我的工作情况下,我只能使用参数绑定语法,如:

SELECT * FROM table WHERE name = ?
Run Code Online (Sandbox Code Playgroud)

现在我想用这些?OR ??参数构建动态sql .假设我有两个条件(nameage),其中任何一个都可以为null(如果用户不提供它),所以我想在3种情况下构建MySQL:

  1. name=Bob:SELECT * FROM table WHERE name = 'Bob'
  2. age=40:SELECT * FROM table WHERE age > 40
  3. 都: SELECT * FROM table WHERE name = 'Bob' AND age > 40

我知道如果你自己构建查询很容易,但是在使用只能绑定字段或值的占位符时如何实现呢?

在文档中nodejs-mysql,占位符?仅代表值并??代表字段:

我的解决办法首先的想法是通过使用这些占位符插入查询一块,但它涉及到失败的,因为这两个???将难逃我的查询片,我的查询将被正确执行.

到目前为止,我的代码如下所示,我确定它不正确,因为查询件已被转义:

// achieve paramters from url request
var condition …
Run Code Online (Sandbox Code Playgroud)

mysql node.js

7
推荐指数
1
解决办法
2万
查看次数

如何将大文件直接下载到磁盘,而不将其存储在服务器和浏览器的 RAM 中?

我想从我的应用程序使用 Node.js 和 Express.js 运行的同一服务器(没有外部云文件存储,也就是本地)实现一个大文件下载(大约 10-1024 Mb)。

我想通了如何将整个文件转换为做到这一点Blob,通过网络传输,然后生成一个下载链接window.URL.createObjectURL(…)Blob。只要文件很小,这种方法就可以完美地工作,否则不可能将整个文件保存在Blob服务器或客户端的 RAM 中。

我尝试使用File APIAJAX实现其他几种方法,但看起来 Chrome 将整个文件加载到 RAM 中,然后才将其转储到磁盘。同样,对于小文件可能没问题,但对于大文件则不是一种选择。

我的最后一次尝试是发送一个基本的请求Get

const aTag = document.createElement("a");
aTag.href = `/downloadDocument?fileUUID=${fileName}`;
aTag.download = fileName;
aTag.click();
Run Code Online (Sandbox Code Playgroud)

在服务器端:

应用程序.mjs

app.get("/downloadDocument", async (req, res) => {

    req.headers.range = "bytes=0";

    const [urlPrefix, fileUUID] = req.url.split("/downloadDocument?fileUUID=");

    const downloadResult = await StorageDriver.fileDownload(fileUUID, req, res);

});
Run Code Online (Sandbox Code Playgroud)

存储驱动程序

export const fileDownload = async function fileDownload(fileUUID, req, res) {

    //e.g. C:\Users\User\Projects\POC\assets\wanted_file.pdf
    const …
Run Code Online (Sandbox Code Playgroud)

javascript data-transfer download chunking node.js

7
推荐指数
1
解决办法
515
查看次数