Categories
discuss

jQuery $(document).ready and UpdatePanels?

I’m using jQuery to wire up some mouseover effects on elements that are inside an UpdatePanel. The events are bound in $(document).ready . For example:

$(function() {    
    $('div._Foo').bind("mouseover", function(e) {
        // Do something exciting
    });    
});

Of course, this works fine the first time the page is loaded, but when the UpdatePanel does a partial page update, it’s not run and the mouseover effects don’t work any more inside the UpdatePanel.

What’s the recommended approach for wiring stuff up in jQuery not only on the first page load, but every time an UpdatePanel fires a partial page update? Should I be using the ASP.NET ajax lifecycle instead of $(document).ready?

Answer

An UpdatePanel completely replaces the contents of the update panel on an update. This means that those events you subscribed to are no longer subscribed because there are new elements in that update panel.

What I’ve done to work around this is re-subscribe to the events I need after every update. I use $(document).ready() for the initial load, then use Microsoft’s PageRequestManager (available if you have an update panel on your page) to re-subscribe every update.

$(document).ready(function() {
    // bind your jQuery events here initially
});

var prm = Sys.WebForms.PageRequestManager.getInstance();

prm.add_endRequest(function() {
    // re-bind your jQuery events here
});

The PageRequestManager is a javascript object which is automatically available if an update panel is on the page. You shouldn’t need to do anything other than the code above in order to use it as long as the UpdatePanel is on the page.

If you need more detailed control, this event passes arguments similar to how .NET events are passed arguments (sender, eventArgs) so you can see what raised the event and only re-bind if needed.

Here is the latest version of the documentation from Microsoft: msdn.microsoft.com/…/bb383810.aspx


A better option you may have, depending on your needs, is to use jQuery’s .on(). These method are more efficient than re-subscribing to DOM elements on every update. Read all of the documentation before you use this approach however, since it may or may not meet your needs. There are a lot of jQuery plugins that would be unreasonable to refactor to use .delegate() or .on(), so in those cases, you’re better off re-subscribing.

Categories
discuss

Best OS for java development? [closed]

What is the best OS for Java development? People from Sun are pushing the Solaris, yes Solaris have some extra features included in itself such as (dTrace, possibility for Performance tuning the JVM, etc.. ). Some friends of mine, had port their application on solaris, and they said to me that the performances was brilliant. I’m not happy with switching my OS, and use Solaris instead.

What were your experiences?

Answer

Of the three I’ve used (Mac OS X, Linux, Windows), I consider Linux the best place to do Java development.

My primary personal machine is a Mac, and I’ve done quite a lot of Java development there and been happy with it. Unfortunately, however, Apple lags behind the official JDK releases and you’re pretty much limited to the few versions they choose to provide.

My employer-provided machine is an old P4 crate from HP which I use mostly to keep my feet warm. The real work occurs “Oberon”, on a 2.6 GHz quad-core running Ubuntu 8.04 in 32-bit mode [1]. The two advantages I notice day-to-day compared with Windows are:

  1. A powerful command line, which helps me automate the boring little stuff.
  2. Far superior file system performance. (I’m currently using EXT3 because I’m becoming conservative in my old age. I used ReiserFS previously, which was even faster for the sorts of operations one typically performs on large workspaces checked out of subversion.)

You can get those advantages from a mac too, but Linux offers another nice bonus:

  • Remote X11: Before my $EMPLOYER provided e-mail and calendar via web, I had to be on the Windows box to read my mail and see my meetings, so I used Cygwin’s X11. This allowed my to run the stuff on Linux but display it on my windows desktop.

[1] I used to run Ubuntu in 64-bit mode, but I had no end of trouble. (Mixing 64-bit and 32-bit is something Mac OS X does much better.) 7.04 worked fine running 32-bit applications on the 64-bit kernel. 7.10 broke the linux32 script and the ability to install new 32-bit applications though old ones continued to (mostly) run. 8.04 killed 32-bit java by making it impossible to connect to the network from a 32-bit JVM (no more updates for Eclipse). Running Eclipse 64-bit didn’t work reliably. The then current version of oXygen would only run (grudgingly) under the IBM 64-bit VM which would work for about 10 minutes until it stopped getting keyboard events. I finally gave up in frustration and used my Mac for a few months until I had enough slack time to do a 32-bit install of 8.04 on the linux box. Now everything works again and I’m quite happy.

Categories
discuss

What’s a good way to teach my son to program Java [closed]

OK, so I’ve read through various posts about teaching beginner’s to program, and there were some helpful things I will look at more closely. But what I want to know is whether there are any effective tools out there to teach a kid Java specifically?

I want to teach him Java specifically because (a) with my strong background in C I feel that’s too complex, (b) Java is the other language I know extremely well and therefore I can assist meaningfully without needing to teach myself a new but (to me) useless language, and (c) I feel that managed languages are the future, and lastly (d) Java is one of the simplest of all the languages I know well (aside from basic).

I learned in basic, and I am open to teaching that first, but I am unaware of a decent free basic shell for Windows (though I haven’t really searched, yet since it’s not my first choice), and would anyway want to progress quickly to Java.

My son is 8, so that’s a couple of years earlier than I started – but he has expressed an
interest in learning to program (possibly because I work from home a lot and he sees me programming all the time).

If no-one can suggest a tool designed for this purpose, I will probably start him off with text/console based apps to teach the basics, and then progress to GUI building.

Oh, one last thing, I am not a fan of IDE’s (old school text editor type), so I would not be put off at all by a system that has him typing real code, and would likely prefer that to a toy drag/drop system.

EDIT: Just to clarify; I really am specifically after ways to teach him Java; there are already a good many posts with good answers for other language alternatives – but that’s not what I am looking for here.

EDIT: What about Java frameworks for 2D video games – can anyone recommend any of them from personal experience? I like the idea of him starting with the mechanics in place (main game loop, scoring, etc) and adding the specifics for a game of his own imagining – that’s what I did, though for me it was basic on a Commodore VIC-20 and a Sinclair ZX-81.

Answer

Just make the learning fun and all the rest will follow !
Amazingly Scala might be the easiest language if you try Kojo
(Scala is better Java, you have access to all Java libraries of course)

Categories
discuss

Remove the default browser header and footer when printing HTML

I got an HTML with the <body onload="window.print()">.

The question I’m trying to ask is:

  • Is there any way to remove the strings that the web browsers add to the printed page?
  • Such as:
    • Web site from where the page was printed
    • Page count
    • Title of the web page
    • Date of printing

Answer

Google Docs is now skirting around this issue by generating a PDF version of your document.

If you are using Chrome, it will automatically open the PDF in a new tab and pop up the print dialog. Other browsers will prompt you to download the resultant file (which is not necessarily obvious behavior).

While I don’t find this to be an elegant solution, one should be able to recreate this fairly easily using most existing web technologies.

Source: stackoverflow
Text is available under the Creative Commons Attribution-ShareAlike License; additional terms may apply. By using this site, you agree to the Privacy Policy, and Copyright Policy. Content is available under CC BY-SA 3.0 unless otherwise noted. The answers/resolutions are collected from stackoverflow, are licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0 © No Copyrights, All Questions are retrived from public domain..