在我正在处理的网站中,显示的图像并不总是(显示),因为链接可能是坏的或陈旧的(或其他).你可以在这里看到它:为什么我的动态HTML似乎随机放置?
当发生这种情况时,我希望能够显示图像所在的"图像不可用"消息.那可能吗?如果是这样,需要做两件事:
1) To be able to determine programmatically that the image is not being displayed
2) To replace it, in that case, with aforementioned message
Run Code Online (Sandbox Code Playgroud)
也许像(伪代码):
if (ImageMissing) {
$('img').Attr('src', 'imageMissing.png');
}
Run Code Online (Sandbox Code Playgroud)
?
好的,所以代码应该是这样的:
function doSomething() {
var htmlBuilder = '';
$.getJSON('duckbills.json', function() {
// each ...
// process the json file, building dynamic html
htmlBuilder += 'img="bla.png"...';
$('img').error(function() {
$(this).attr("src", "imageMissing.png");
});
}):
}):
Run Code Online (Sandbox Code Playgroud)
???
这是否会导致每个图像都附加了错误处理程序,以便绑定N个事件处理程序,每个图像一个?
或者应该是:
function doSomething() {
var htmlBuilder = '';
$.getJSON('duckbills.json', function() …Run Code Online (Sandbox Code Playgroud) 根据我的阅读,在对外部js文件的引用中使用"async",例如:
<script scr="http://someCDN/bla.js" async />
Run Code Online (Sandbox Code Playgroud)
可能会提供最佳性能.但是,似乎也存在一个潜在的问题,因此引用的脚本以任何顺序执行.但是对于jQuery和jQueryUI(或任何基于jQuery的js文件),你需要首先加载jQuery,然后才需要加载jQueryUI(或fancybox,或goMap,或者不管是什么情况).
那么:异步是一种挑逗,还是可以在这种情况下安全使用(引用jQuery及其在CDN上托管的产卵)?
我有这个CSS规则:
.featured .content-wrapper {
background-color: #7ac0da;
background-image: -ms-linear-gradient(left, #7ac0da 0, #a4d4e6 100%);
background-image: -o-linear-gradient(left, #7ac0da 0, #a4d4e6 100%);
background-image: -webkit-gradient(linear, left top, right top, color-stop(0, #7ac0da), color-stop(1, #a4d4e6));
background-image: -webkit-linear-gradient(left, #7ac0da 0, #a4d4e6 100%);
background-image: linear-gradient(left, #7ac0da 0, #a4d4e6 100%);
color: #3e5667;
padding: 20px 40px 30px 40px;
}
Run Code Online (Sandbox Code Playgroud)
...和R#抱怨最后一个背景图像行, Expected one of: <angle>, to, <named-color>, <system-color>, <color>, rgb(), rgba(), hsl(), hsla().
我不知道它想要什么 - 但是我如何修改那条线以安抚R#有时看起来像是戴着白手套的婆婆(不要误会我的意思 - 我爱她,无论如何)?
将值"01200000131"传递给此方法:
private static int sumOddVals(string barcode)
{
int cumulativeVal = 0;
for (int i = 0; i < barcode.Length; i++)
{
if (i % 2 != 0)
{
MessageBox.Show(string.Format("i is {0}; barcode{0} is {1}", i, barcode[i]));
cumulativeVal += Convert.ToInt16(barcode[i]);
}
}
MessageBox.Show(string.Format("Odd total is {0}", cumulativeVal));
return cumulativeVal;
}
Run Code Online (Sandbox Code Playgroud)
...返回"244"
我期待它返回"4".
第一个消息框显示我期望看到的内容,即"1",然后是"0"三次,然后是"3",我希望加起来为"4",而不是"244".
通过最近涉及WebResponse的一些代码调试后,我发现我遇到的问题是我在发出另一个之前没有正确处理WebResponse.因为WebResponse需要被转换为IDisposable以便实际调用dispose(或者你可以使用"using"来实现相同的目标),所以我误入歧途.
所以我的问题是:
1)Microsoft用什么来实现这一目标?
IDisposable是一个接口,因此是公共的,但WebResponse以某种方式改变了根据MSDN doumentation保护的访问修饰符.我认为这是不可能的.
2)以这种方式隐藏处置有什么好处?
为什么不让webResponse.Dispose()有效?
我添加了这个CSS类:
.beanies {
font-variant: small-caps;
}
Run Code Online (Sandbox Code Playgroud)
我从几个地方调用它,再加上另一个类,以这种方式尝试:
<p class="coolPools beanies">LICENSE #764014</p>
Run Code Online (Sandbox Code Playgroud)
...和这个:
<h3 class="statelyPresence, beanies">NEW POOL LAW REQUIRES IMMEDIATE ACTION AT ALL APARTMENT AND CONDOMINIUM POOLS AND SPAS</h3>
Run Code Online (Sandbox Code Playgroud)
(IOW,我要应用于该元素的两个类之间是否有逗号分隔)
...而且在任何情况下,文本都不会大写显示。
我究竟做错了什么?
我即将创建一个非常基本的网站,因为它只是一个页面上有谷歌地图,还有一些输入复选框.它背后会有jQuery,但我不需要Bootstrap或MVC或Authentication或这个项目的数据库.我想使用VS 2013作为编辑器细节和它将提供的ASP.NET框架(web.config等),但是在大多数情况下它将是一个简单的HTML5/CSS/jQuery站点.
那么最合适的项目模板(C#)是什么?
我从测试应用程序复制了一些代码:
const string sdfPath = @"C:\WebAPIClient\WebAPIClient\bin\Debug\DBPlatypusCompactDB.sdf";
string dataSource = string.Format("Data Source={0}", sdfPath);
int countAdded = 0;
if (!File.Exists(sdfPath))
. . .
Run Code Online (Sandbox Code Playgroud)
......在那里工作得很好; 但是在尝试转换它以便在将在Windows CE设备上运行的项目中使用时:
const string sdfPath = @"Computer\WindowsCE\\\Program Files\hhs\DBPlatypusCompactDB.sdf";
. . .
Run Code Online (Sandbox Code Playgroud)
...(这是我从Windows资源管理器(部署了exe的文件夹,没有子文件夹)复制的路径),我得到"路径未找到"或"路径无效"或类似的东西.
我如何指定路径?
c# filepath windows-ce sql-server-ce windows-embedded-compact
我编写了一个函数来比较客户端当前拥有的文件版本和服务器上文件的最新版本.客户端将"quad"(Major.Minor.Build.Private)版本号作为字符串传递给服务器,然后服务器使用FileVersionInfo:
// clientFileVersion will be in "quad" format, a la "3.1.4.1"
private bool ServerFileIsNewer(string clientFileVersion, FileVersionInfo serverFile)
{
// Don't say I never learned nuthin' from Steve McConnell
const int MAJOR_INDEX = 0;
const int MINOR_INDEX = 1;
const int BUILD_INDEX = 2;
const int PRIVATE_INDEX = 3;
string[] versionStrArray = clientFileVersion.Split('.');
int FileMajorPartClient;
Int32.TryParse(versionStrArray[MAJOR_INDEX], out FileMajorPartClient);
int FileMinorPartClient;
Int32.TryParse(versionStrArray[MINOR_INDEX], out FileMinorPartClient);
int FileBuildPartClient;
Int32.TryParse(versionStrArray[BUILD_INDEX], out FileBuildPartClient);
int FilePrivatePartClient;
Int32.TryParse(versionStrArray[PRIVATE_INDEX], out FilePrivatePartClient);
int FileMajorPartServer = serverFile.FileMajorPart;
int FileMinorPartServer = serverFile.FileMinorPart; …Run Code Online (Sandbox Code Playgroud) 我的MainActivity中的以下代码在重写的doInBackground()方法中失败并出现致命异常:
public class MainActivity extends ActionBarActivity {
. . .
public void onFetchBtnClicked(View v){
if(v.getId() == R.id.FetchBtn){
Toast.makeText(getApplicationContext(), "You mashed the button, dude.", Toast.LENGTH_SHORT).show();
new NetworkTask().execute();
}
}
public static class NetworkTask extends AsyncTask<String, Void, HttpResponse> {
@Override
protected HttpResponse doInBackground(String... params) {
String link = params[0];
HttpGet request = new HttpGet("http://localhost:28642/api/deliveries/Count");
AndroidHttpClient client = AndroidHttpClient.newInstance("Android");
try {
return client.execute(request);
} catch (IOException e) {
e.printStackTrace();
return null;
} finally {
client.close();
}
}
@Override
protected void onPostExecute(HttpResponse result) { …Run Code Online (Sandbox Code Playgroud) java android android-asynctask androidhttpclient android-studio
c# ×5
css ×3
html ×2
jquery ×2
.net ×1
android ×1
asp.net ×1
asynchronous ×1
boolean ×1
cdn ×1
filepath ×1
google-maps ×1
java ×1
jquery-ui ×1
logic ×1
resharper ×1
smallcaps ×1
webresponse ×1
windows-ce ×1