草庐IT

javascript - 在不受支持的浏览器中替代 IndexedDB? Safari/iOS Saf-Chrome

coder 2023-07-28 原文

我有一个 IndexedDB 工作示例,非常适合我的桌面 Chrome。尽管如此,我的主要目标是为 iOS 设备 (Chrome-Safari) 进行开发,但该 API 尚不可用。 我该怎么办?

我见过这个 Polyfill:http://nparashuram.com/IndexedDBShim/ .但是,我用我的 iPod Touch 5th Gen 测试了它,不知何故第 19 次测试不起作用......

我应该使用已弃用的 WebSQL 吗?

我喜欢 Polyfill 的想法,但它不适合我......

是否有任何计划在未来为所有不受支持的浏览器支持 IndexedDB?

谢谢!

最佳答案

Here is another similar polyfill you can try ,但根据我(虽然有限)的经验,这两个 polyfill 都有错误/不完整。他们在 GitHub 上也有许多 Unresolved 问题,供人们报告问题。当我测试其中一个(我忘了是哪个)时,它比原生 IndexedDB 慢得多。

也许可以创建一个像样的 polyfill,但目前的 polyfill 似乎并没有完成这项工作。

Should I use WebSQL which was deprecated?

WebSQL 的问题在于它永远不会在 IE 或 Firefox 中得到支持。如果您只针对移动浏览器,您可能会摆脱 WebSQL,至少在 Firefox OS 或 Windows Phone 抢占重要市场份额之前是这样。

Are there any plans to support IndexedDB in the future for all the non-supported browsers?

让我们说清楚。你问的是 Apple,因为其他人都在他们最新的浏览器中支持 IndexedDB(iOS Chrome 使用 Apple 的渲染引擎,因为 Apple 不允许他们做任何其他事情)。

Apple 不仅不支持 IndexedDB,他们也没有公开说明过任何相关信息(据我所知……而且我已经进行了大量搜索)。这看起来很奇怪。因此,据我所知,没有人知道 Apple 是否计划支持 IndexedDB。我的阴谋论者认为他们可能试图破坏 HTML5 应用程序以迫使人们编写 native 应用程序,但这纯粹是猜测。

总的来说,这让我们的开发人员处于非常糟糕的境地。没有很好的跨平台解决方案。我建议你向 Apple 投诉。这就是我所做的,并且我已经要求想要在 iOS 上使用我的基于 IndexedDB 的应用程序的用户也这样做。 Apple 仍然没有任何消息。

更新 - 如 WWDC 2014 所述,iOS 8 现在支持 Indexeddb - 但不幸的是 it's broken pretty badly .

关于javascript - 在不受支持的浏览器中替代 IndexedDB? Safari/iOS Saf-Chrome,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20103870/

有关javascript - 在不受支持的浏览器中替代 IndexedDB? Safari/iOS Saf-Chrome的更多相关文章

  1. ruby-on-rails - 使用 javascript 更改数据方法不会更改 ajax 调用用户的什么方法? - 2

    我遇到了一个非常奇怪的问题,我很难解决。在我看来,我有一个与data-remote="true"和data-method="delete"的链接。当我单击该链接时,我可以看到对我的Rails服务器的DELETE请求。返回的JS代码会更改此链接的属性,其中包括href和data-method。再次单击此链接后,我的服务器收到了对新href的请求,但使用的是旧的data-method,即使我已将其从DELETE到POST(它仍然发送一个DELETE请求)。但是,如果我刷新页面,HTML与"new"HTML相同(随返回的JS发生变化),但它实际上发送了正确的请求类型。这就是这个问题令我困惑的

  2. ruby - 下载位置 Selenium-webdriver Cucumber Chrome - 2

    我将Cucumber与Ruby结合使用。通过Selenium-Webdriver在Chrome中运行测试时,我想将下载位置更改为测试文件夹而不是用户下载文件夹。我当前的chrome驱动程序是这样设置的:Capybara.default_driver=:seleniumCapybara.register_driver:seleniumdo|app|Capybara::Selenium::Driver.new(app,:browser=>:chrome,desired_capabilities:{'chromeOptions'=>{'args'=>%w{window-size=1920,1

  3. ruby-on-rails - 在不重新查询数据库的情况下重新排序 Rails 中的事件记录? - 2

    例如,假设我有一个名为Products的模型,并且在ProductsController中,我有以下代码用于product_listView以显示已排序的产品。@products=Product.order(params[:order_by])让我们想象一下,在product_listView中,用户可以使用下拉菜单按价格、评级、重量等进行排序。数据库中的产品不会经常更改。我很难理解的是,每次用户选择新的order_by过滤器时,rails是否必须查询,或者rails是否能够以某种方式缓存事件记录以在服务器端重新排序?有没有一种方法可以编写它,以便在用户排序时rails不会重新查询结果

  4. ruby - 强制浏览器下载文件而不是打开文件 - 2

    我要下载http://foobar.com/song.mp3作为song.mp3,而不是让Chrome在其native中打开它浏览器中的播放器。我怎样才能做到这一点? 最佳答案 您只需要确保发送这些header:Content-Disposition:attachment;filename=song.mp3;Content-Type:application/octet-streamContent-Transfer-Encoding:binarysend_file方法为您完成:get'/:file'do|file|file=File.

  5. ruby - 如何使用 readline 支持重新安装 ruby​​? - 2

    我已经按照https://github.com/wayneeseguin/rvm#installation上的说明通过RVM安装了Ruby.有关信息,我有所有文件(readline-5.2.tar.gz、readline-6.2.tar.gz、ruby-1.9.3-p327.tar.bz2、rubygems-1.8.24.tgz、wayneeseguin-rvm-stable.tgz和yaml-0.1.4.tar.gz)在~/.rvm/archives目录中,我不想在任何目录中重新下载它们方式。当我这样做时:sudo/usr/bin/apt-getinstallbuild-essent

  6. ruby - 404 未找到,但可以从网络浏览器正常访问 - 2

    我在这方面尝试了很多URL,在我遇到这个特定的之前,它们似乎都很好:require'rubygems'require'nokogiri'require'open-uri'doc=Nokogiri::HTML(open("http://www.moxyst.com/fashion/men-clothing/underwear.html"))putsdoc这是结果:/Users/macbookair/.rvm/rubies/ruby-2.0.0-p481/lib/ruby/2.0.0/open-uri.rb:353:in`open_http':404NotFound(OpenURI::HT

  7. ruby-on-rails - "undefined method ` stub_request '"访问 RSpec 支持文件中的方法时 - 2

    我的Ruby-on-Rails项目中有以下文件结构,用于规范:/spec/msd/serviceservice_spec.rb/support/my_modulerequests_stubs.rb我的request_stubs.rb有:moduleMyModule::RequestsStubsmodule_functiondeflist_clientsurl="dummysite.com/clients"stub_request(:get,url).to_return(status:200,body:"clientsbody")endend在我的service_spec.rb我有:re

  8. ruby - 如何在 watir 测试套件结束时关闭浏览器? - 2

    使用ruby​​的watir测试网络应用程序时,浏览器最后会保持打开状态。网上的一些建议是,要进行真正的单元测试,您应该在每次测试时(在拆卸调用中)打开和关闭浏览器,但这很慢而且毫无意义。或者他们做这样的事情:defself.suites=superdefs.afterClass#Closebrowserenddefs.run(*args)superafterClassendsend但这会导致摘要输出不再显示(诸如“100次测试、100次断言、0次失败、0次错误”之类的内容仍应显示)。我怎样才能让ruby​​或watir在我的测试结束时关闭浏览器? 最佳答案

  9. ruby - Ruby 是否支持逐字字符串? - 2

    Ruby是否支持(找不到更好的词)非转义(逐字)字符串?就像在C#中一样:@"c:\ProgramFiles\"...或者在Tcl中:{c:\ProgramFiles\} 最佳答案 是的,您需要在字符串前加上%前缀,然后是描述其类型的单个字符。你想要的是%q{c:\programfiles\}。镐书很好地涵盖了这一点here,部分是通用分隔输入。 关于ruby-Ruby是否支持逐字字符串?,我们在StackOverflow上找到一个类似的问题: https:/

  10. ruby - 在 Mechanize 中使用 JavaScript 单击链接 - 2

    我有这个:AccountSummary我想单击该链接,但在使用link_to时出现错误。我试过:bot.click(page.link_with(:href=>/menu_home/))bot.click(page.link_with(:class=>'top_level_active'))bot.click(page.link_with(:href=>/AccountSummary/))我得到的错误是:NoMethodError:nil:NilClass的未定义方法“[]” 最佳答案 那是一个javascript链接。Mechan

随机推荐