Tag: networking

你能否在localStorage中存储JavaScript和CSS文件来提高在线Web应用程序的性能?

我正在开发一个Web应用程序,这个应用程序非常像iOS和Android的原生应用程序。 然而,JavaScript文件(jQuery +我自己的)和css文件一起移动使用相当大,这使得应用程序加载速度缓慢,如果用户没有启用3G。 因此,我开始考虑离线存储这些文件。 然而,除了cache.manifest(在我的知识中只有在没有互联网连接才能脱机使用时才会使用)我找不到这个方法。 我最想要的是检查文件是否已经被caching/存储,如果没有,使用它们,然后将它们存储下一次。 这可能吗? 由于索引文件本身非常小,这将减less加载我的应用程序的时间。 我还在努力通过优化来减less文件的数量,但这同时会有很大的帮助。 编辑: 只是为了提供更多的细节,对不起,如果我以前不清楚。 我已经开始使用HTML5样板构build这个webapp,而我的.htaccess文件包含所有JS和CSS文件头,过期date为1年。 但是,似乎从iOS主屏幕打开应用程序每次加载.js和.css文件,就像他们没有被caching时一样。 在桌面上甚至在iOS Safari浏览器上打开网站似乎都以正确的方式caching文件,因为只有在手动刷新页面之后,才会显示Javascript和CSS的更改。 似乎打开和closures,并从主屏幕上打开Web应用程序充当刷新,因此,每次加载文件,即使他们通过caching.manifest离线使用,文件的到期date是远未来。 编辑2: 以为我会包含caching标头的文件。 这些似乎没有问题。 Cache-Control max-age = 31536000,public 有效期至2012年5月18日星期五17:34:20 GMT 不同的接受编码,用户代理 内容编码gzip Keep-Alive超时= 2,最大= 98

上传图片到服务器 – Swift 3

我想发送一个图像作为参数与我的要求。 我用下面的代码来调用我的POST请求,但我不知道如何将图像附加到正文。 我通过图像select器获取图像如下: if let image = info[UIImagePickerControllerOriginalImage] as? UIImage { 我的请求形成如下 var request = URLRequest(url: URL(string: "")!) // link removed request.httpMethod = "POST" let postString = "user_id=\(userId)&image=\(image)" request.httpBody = postString.data(using:.utf8) let task = URLSession.shared.dataTask(with: request) { data, response, error in guard let data = data, error == nil else { // check for fundamental […]

奇怪的NSURLSessionDownloadTask行为通过蜂窝(不是wifi)

我使用远程通知任务启用了后台模式,当应用程序收到推送通知时,可以在后台下载一个小文件(100kb)。 我已经使用configuration下载会话 NSURLSessionConfiguration *backgroundConfiguration = [NSURLSessionConfiguration backgroundSessionConfiguration:sessionIdentifier]; [backgroundConfiguration setAllowsCellularAccess:YES]; self.backgroundSession = [NSURLSession sessionWithConfiguration:backgroundConfiguration delegate:self delegateQueue:[NSOperationQueue mainQueue]]; 并使用它来激活它 NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[hostComponents URL]]; [request setAllowsCellularAccess:YES]; NSMutableData *bodyMutableData = [NSMutableData data]; [bodyMutableData appendData:[params dataUsingEncoding:NSUTF8StringEncoding]]; [request setHTTPMethod:@"POST"]; [request setHTTPBody:[bodyMutableData copy]]; _downloadTask = [self.backgroundSession downloadTaskWithRequest:request]; [self.downloadTask resume]; 现在一切工作正常,只有当我通过Wifi或通过蜂窝连接,但与iPhone连接到XCODO电缆,如果我断开iPhone,并通过蜂窝接收推送通知代码停止在[self.downloadTask恢复]; 没有调用URL的行。 处理这些操作的类是一个NSURLSessionDataDelegate,NSURLSessionDownloadDelegate,NSURLSessionTaskDelegate等实现: – (void)URLSession:(NSURLSession *)session didReceiveChallenge:(NSURLAuthenticationChallenge *)challenge completionHandler:(void (^)(NSURLSessionAuthChallengeDisposition, NSURLCredential […]

如何使程序在继续执行下一个命令之前等待asynchronousNSURLConnection完成?

我怎样才能让我的程序等待asynchronousNSURLConnection完成前去下一行的代码? SetDelegate *sjd= [SetDelegate alloc]; NSURLConnection *connection = [[NSURLConnection alloc]initWithRequest:post delegate:sjd]; [connection start]; 这是我如何开始连接,我处理委托收到的数据,但我想等待连接结束之前继续进行,主要是因为这是在for循环,它必须运行我的数据库中的每个元素。 我需要从手机数据库的数据到远程数据库,并在数据成功放入电话数据库中的数据被删除。 我正在浏览手机数据库中的每个元素,并开始一个连接,这就是为什么我不能看到循环中的下一个东西是如何完成的。 当谈到Objective-C编程时我是一个初学者,所以我不确定这是否正确或不这样做 使调用同步不是一个选项,因为它阻止了程序,我有一个应该显示的进度条。

是否有可能通过获取IP地址来连接两个使用套接字的ios设备?

我想通过套接字连接多个设备,而不需要任何服务器实现。我只会使用它来获取将要注册的设备的IP地址。

iOS6 – 如何清除主屏幕/独立Web应用程序的caching?

看起来,苹果已经改变了主屏幕/独立的networking应用程序在iOS 6的工作方式。根据各种博客文章( 例如 )这些应用程序现在得到自己的专用空间来存储他们的caching文件,sqllite dbs,本地存储等,而不是像之前一样与Safari浏览器共享。 在开发iOS 6之前,我曾经通过以下程序虔诚地清除caching… 从主屏幕中删除应用程序。 closuresSafari中的所有页面/标签。 最后在“设置”>“Safari”中“清除Cookies和数据”或“清除数据”。 不幸的是,现在苹果已经移动了目标职位,这个相同的程序似乎没有工作。 清除后,即使我的变化在Safari中被拿起,当我添加到主屏幕,并启动应用程序旧的HTML,JS等仍然拿起。 有谁知道如何可靠地完全清除iOS 6中的caching?

NSIncrementalStore以普通英语解释

我一直在看NSIncrementalStore ,因为我一直在研究使用核心数据与Web服务进行交互的最佳方式。 在阅读了Drew Crawford的一篇文章之后, 一个编程指南 , 一个类的引用 和本教程几次,我仍然在努力理解NSIncremental存储的是什么,为什么以及何时使用它。 有人可以解释吗? 编辑 读完mundi的回答后,我可以看到一些进一步的背景是必需的。 我正在研究与正在构build的Web服务一起使用核心数据。 我试图find最好的方式来将用户信息存储在本地设备上,并在存在连接时发布到Web服务。 我对核心数据知识的缺乏促使了我的研究,但我无法完全理解NSIncrementalStore的用处。

websocket和基于回合的游戏服务器的长轮询之间的区别

我正在写一个iOS游戏的服务器。 游戏是基于回合的,并且服务器需要向客户推送信息的唯一时间是通知对手的移动。 我很好奇,如果任何人都可以评论使用websockets和长轮询之间的执行差异的性能和易用性。 另外,如果我使用websocket,我应该只用它来接收信息,并发送POST请求的一切,或者所有的通信都应该通过websocket? 另外,如果我也有兴趣做一个networking客户端,还有什么需要额外考虑websockets和长轮询?

“CFNetwork SSLHandshake失败(-9807)”与“exception域”中的本地IP

我正在尝试在OS X和iOS(8.1版本)上使用openssl之间的SSL TCP连接。 Exception Domains有192.168.0.104 。 Swift iOS代码: class SSLSocketLite { // The input stream. private var inStream: NSInputStream? // The output stream. private var outStream: NSOutputStream? // The host to connect to. private var host: String // The port to connect on. private var port: Int init(inHost:String, inPort:Int) { host = inHost port = […]

iOS的JavaScript工人高端CPU后终止()

我有一个复杂的JavaScript函数可能需要1秒,或许多分钟发送答案。 所以我创build了一个正在工作的Worker,我从Swift中的UIWebView调用了这个函数(stringByEvaluatingJavaScriptFromString)。 我只等了5秒钟(超时创build在同一个Javascript),之后,我终止工人(job.terminate()),我开始一个不同的其他参数(简单),只需要1秒答案。 事情是,即使在终止信号之后,第一个工人似乎仍在后台运行。 正如你可以在图像中看到的,WebCore:Worker有很多CPU使用率。 我怎样才能终止工人? job = new Worker("main.js"); var t = setTimeout(function(){ stop(); logNode.innerText = 'NULL'; },5000); function stop() { job.terminate(); job = undefined; } (main.js): importScripts('dist/algorithm.js'); var lp; self.addEventListener('message', function(e) { … …