我需要将图像和小视频文件(大约5MB,小于10MB)发送到REST服务,我将编写.我想知道我是否应该使用Byte []或Stream来完成这项任务.在使用Byte []和Stream之间传输文件大小方面的分界线是什么?
在我添加此代码之前,Safari iOS iOS 5上的一切正常工作:
var watchID = navigator.geolocation.watchPosition(updatePos,locationError,{maximumAge: 10000, frequency: 60000, enableHighAccuracy: true, timeout: 1000});
function updatePos(position) {
if (position.coords.accuracy < accuracyThreshold) {
$.post(websiteRoot + '/ReportDeviceLocation?rand=' + (Math.random() * Math.random()) + '&longitude=' + position.coords.longitude + '&latitude=' +position.coords.latitude);
} else {
console.debug("Location data is not accurate enough. Location not updated.");
}
}
Run Code Online (Sandbox Code Playgroud)然后网页工作了大约4分钟,我得到这个错误:
JavaScript执行超过了超时.
然后没有JavaScript会加载.我插入到my.js文件中的调试消息都不会打印出来.只有上面的错误.
即使在我离开生成此错误的页面并在同一域下打开其他网页后,错误仍然存在.
我用过try和catch,我使用了setTimeout函数,但是既没有给我错误的来源也没有解决问题.
我不知道问题是什么.它一整天都在燃烧我,并会在周末燃烧我.
我无法更改 Appcompat PopupMenu 的宽度,因为菜单项在MenuPopupHelper.java 中使用此布局abc_popup_menu_item_layout.xml,将菜单项 minWidth 设置为 196dip。
<android.support.v7.internal.view.menu.ListMenuItemView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="?attr/dropdownListPreferredItemHeight"
android:minWidth="196dip"
android:paddingRight="16dip">
Run Code Online (Sandbox Code Playgroud)
我试图在 style.xml 的以下属性中覆盖 minWidth 和 dropDownWidth。我还尝试在 android:dropDownItemStyle 中覆盖 minWidth,但它没有帮助。我开始怀疑是否可以覆盖 ListMenuItemView 的这个硬编码属性。有没有人成功修改过 PopupMenu 的宽度?
<style name="OrderDetailsActivity" parent="AppTheme">
<item name="android:textAppearanceLargePopupMenu">@style/OrderDetailsPopupMenuTextAppearanceLarge</item>
<item name="android:textAppearanceSmallPopupMenu">@style/OrderDetailsPopupMenuTextAppearanceSmall</item>
<item name="android:dropDownListViewStyle">@style/OrderDetailsListDropDownStyle</item>
<item name="dropDownListViewStyle">@style/OrderDetailsListDropDownStyle</item>
</style>
<style name="OrderDetailsPopupMenuTextAppearanceLarge" parent="@android:style/TextAppearance.DeviceDefault.Widget.PopupMenu.Large">
<item name="android:fontFamily">sans-serif-medium</item>
<item name="android:textSize">@dimen/font_size_medium</item>
</style>
<style name="OrderDetailsPopupMenuTextAppearanceSmall" parent="@android:style/TextAppearance.DeviceDefault.Widget.PopupMenu.Small">
<item name="android:fontFamily">sans-serif-medium</item>
<item name="android:textSize">@dimen/font_size_medium</item>
</style>
<style name="OrderDetailsListDropDownStyle" parent="Widget.AppCompat.ListView.DropDown">
<item name="android:divider">@drawable/list_divider</item>
</style>
Run Code Online (Sandbox Code Playgroud) 我需要在开发和部署期间在http和https之间切换.
为此,我需要在web.config中进行以下更改:
<behaviors>
<serviceBehaviors>
<behavior name="DirectInstallHelperServiceBehavior">
<!-- need to change to <serviceMetadata httpGetEnabled="false" httpsGetEnabled="true"> -->
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="false">
</serviceMetadata>
</behavior>
</serviceBehaviors>
</behaviors>
<bindings>
<webHttpBinding>
<binding>
<!-- need to add the following, but don't know how
<security mode="Transport">
<transport clientCredentialType="Basic"/>
</security>
-->
</binding>
</webHttpBinding>
</bindings>
Run Code Online (Sandbox Code Playgroud)
所以我尝试在Web.Release.config中添加以下行:
<behaviors>
<serviceBehaviors>
<behavior name="DirectInstallHelperServiceBehavior">
<serviceMetadata httpGetEnabled="false" httpsGetEnabled="true" xdt:Transform="setAttribute(httpsGetEnabled, httpGetEnabled)" xdt:Locator="Match(name)"></serviceMetadata>
</behavior>
</serviceBehaviors>
</behaviors>
<bindings>
<webHttpBinding>
<binding>
<security mode="Transport" xdt:Transform="InsertAfter(/configuration/system.serviceModel/bindings/webHttpBinding/binding)">
<transport clientCredentialType="Basic"/>
</security>
</binding>
</webHttpBinding>
</bindings>
Run Code Online (Sandbox Code Playgroud)
但我做错了,因为当我将服务发布到我的文件系统时,我仍然看到web.config的开发http版本.任何帮助表示赞赏.
c# ×2
wcf ×2
android ×1
geolocation ×1
ipad ×1
javascript ×1
media ×1
popupmenu ×1
safari ×1
service ×1
web-config ×1