如果我在我的Angular Controller中有一个PDF文件的BLOB表示,我将以下列方式在我的HTML页面中公开:
//controller
function (data) {
var fileBack = new Blob([(data)], { type: 'application/pdf' });
var fileURL = URL.createObjectURL(fileBack);
$scope.content = $sce.trustAsResourceUrl(fileURL);
}
//html
<object ng-show="content" data="{{content}}" type="application/pdf" style="width: 100%; height: 400px;"></object>
Run Code Online (Sandbox Code Playgroud)
如果我想在浏览器中显示文档的部分时屏蔽部分内容,我有哪些选择?这种情况包括我能想到的(只是想证明这是可能的顺便说一下):
- Hiding the 2nd page of a document
- Overlapping a image to hide some Width x Height space
Run Code Online (Sandbox Code Playgroud)
关于如何实现这一目标的任何想法?如果不是BLOB格式,是否可能?为完成这样的任务,我必须满足哪些要求.
浏览器中的成功示例:https://studysoup.com/western-kentucky-university/econ-202/one-week-of-notes/econ-202-notes-week-9?id = 864095
如果我的身体有以下 CSS 属性:
body {
background-color: red;
background-image: linear-gradient(red, orange);
}
Run Code Online (Sandbox Code Playgroud)
然后渐变出现在我的网页上,但它没有占据全屏尺寸(我有一个大显示器)。它显示如下: 这是页脚的问题吗?我目前没有页脚。
我试图了解WebSocketAccept实际上做了什么.我知道WebSocketAccept是:
using WebSocketAccept =
Action
<
IDictionary<string, object>, // WebSocket Accept parameters
Func // WebSocketFunc callback
<
IDictionary<string, object>, // WebSocket environment
Task // Complete
>
>;
Run Code Online (Sandbox Code Playgroud)
并以这种方式使用:
public void Configuration(IAppBuilder app)
{
app.Use(UpgradeToWebSockets);
app.UseWelcomePage();
}
// Run once per request
private Task UpgradeToWebSockets(IOwinContext context, Func<Task> next)
{
WebSocketAccept accept = context.Get<WebSocketAccept>("websocket.Accept");
if (accept == null)
{
// Not a websocket request
return next();
}
accept(null, WebSocketEcho);
return Task.FromResult<object>(null);
}
Run Code Online (Sandbox Code Playgroud)
那么accept()实际上是做什么的?它是否调用了WebSocketAccept的Func <>属性并定义了WebSocketEcho方法?WebSocketEcho定义为:
private async Task …Run Code Online (Sandbox Code Playgroud) 当用户将鼠标悬停在我的文本div而不是div自身的文本上时,我试图让光标发生变化.我目前有:
div {
width: 500px;
height: 500px;
background-color: green;
}
div:hover {
cursor: pointer
}Run Code Online (Sandbox Code Playgroud)
<div>
Hello
</div>Run Code Online (Sandbox Code Playgroud)
有没有办法让我以某种方式选择diva的文本并对文本本身应用悬停效果.
我正在考虑允许用户上传PDF文件(以后再预览/下载).我环顾四周,似乎ng-File-Upload是上传文件的流行指令,因为它支持许多浏览器.
我原本以为我必须将我的PDF转换为blob并将它们存储在我的SQL数据库中,然后在为它们提供预览/下载选项时转换回PDF.
玩弄ng-file-upload我看到当一个人以某种方式上传文件时(取自他们的样本页面):
$scope.uploadFiles = function (file, errFiles) {
console.log(file);
$scope.f = file;
$scope.errFile = errFiles && errFiles[0];
if (file) {
file.upload = Upload.upload({
url: 'https://angular-file-upload-cors-srv.appspot.com/upload',
data: { file: file }
});
file.upload.then(function (response) {
$timeout(function () {
file.result = response.data;
});
}, function (response) {
if (response.status > 0)
$scope.errorMsg = response.status + ': ' + response.data;
}, function (evt) {
file.progress = Math.min(100, parseInt(100.0 *
evt.loaded / evt.total));
});
}
}
}]);
Run Code Online (Sandbox Code Playgroud)
和我在控制台中检出文件属性我看到一个名为$ ngfBlobUrl的属性:
$ ngfBlobUrl:"blob:http%3A // localhost%3A54170/0cc4b67a-9f6a-4833-acd0-7fd51e00996e …
我试图理解和处理关闭网络套接字连接的不同方式。来自msdn:
您可以对客户端启动的请求和服务器启动的请求使用 CloseAsync 和 CloseOutputAsync 方法来关闭 AspNetWebSocket 连接。这两个方法以相同的方式处理客户端发起的请求:客户端向服务器发送关闭连接的消息后,服务器调用其中一个方法并向客户端发送确认,然后该方法返回。
对于服务器发起的请求,这两种方法的工作方式不同。CloseAsync 方法向客户端发送消息以关闭连接,等待响应,然后返回。服务器不等待客户端发送的任何附加数据。相反,CloseOutputAsync 方法向客户端发送消息以关闭连接并返回,而不等待响应。该方法返回后,您可以调用 ReceiveAsync 方法并处理其他数据或客户端发送的确认。
在我的应用程序中,客户端基本上坐在那里接收来自服务器的更新,但除了打开连接之外从未实际向服务器发送任何内容。然而,客户端还需要能够从他们这边关闭连接。
基本上,服务器的角色是坐在那里等待打开连接,发送一堆内容,并处理客户端关闭连接(但永远不必决定是否关闭连接)。
所以无论如何,当我们谈论干净地关闭连接时,客户端需要向服务器发送一条消息,表示它想要关闭连接,对吗?
所以客户需要做类似的事情:
var x = await closeAsync(WebSocketCloseStatus.NormalClosure, null, CancellationToken.None)
Run Code Online (Sandbox Code Playgroud)
服务器如何知道客户端执行了closeAync?我尝试使用以下命令将一段数据从服务器发送到客户端:
await sendAsync(new ArraySegment<byte>(infoBytes), 1, false, cancelled);
Run Code Online (Sandbox Code Playgroud)
并收到错误:
“调用 WebSocket.CloseAsync 后,收到的消息类型“文本”无效。仅当预计远程终结点不再有数据时,才应使用 WebSocket.CloseAsync。使用“WebSocket.CloseOutputAsync”来保持能够接收数据但关闭输出通道。”
那么,在服务器端我如何知道客户端是否正在尝试彻底关闭连接呢?
我刚刚创建了我的第一个 Azure SQL Server 和数据库,现在正在尝试配置防火墙,以便我的 Web 应用程序可以连接并更改服务器上的单个数据库。
然而,这是不好的做法吗?我看到我的客户端 IP 地址列在 Azure 门户中我是否可以澄清我现在应该只允许该单个 IP 地址访问,然后当我将我的 Web 应用程序发布到 Azure 时,我将获得一个 IP 地址Web 应用程序存在并且仅限制对其的访问(假设人们只能通过我的前端应用程序进行数据库更改)。
谢谢
我试图在网上找到这个代码段:
private EventWaitHandle wh = new AutoResetEvent();
private void WorkerThread()
{
while(true)
{
wh.WaitOne();
//Do work.
}
}
public void StartWorking()
{
wh.Set();
}
Run Code Online (Sandbox Code Playgroud)
所以我理解线程一旦命中WaitOne()它将阻塞直到调用Set(),但是如果多个线程到达.WaitOne()会怎么样?他们都会被封锁还是只有一个?如果调用Set(),它会释放所有线程还是只释放一个?
编辑 - 我正在阅读更多并尝试它和一个后续问题:如果ManualResetEvent完成了我上面描述的内容,当有多个线程同时等待时它的行为如何?只有一个Set()调用,AutoResetEvent会一次释放一个吗?