Articles

font-face and aborted request(s)

By default at least IE up to 9 8 (not tested on IE10 IE 9 and 10 doesn’t block loading content and they use local fonts, if available) blocks loading page until fonts are not downloaded. Moving fonts for font-face to separate subdomain (eg. fonts.example.com) means that page loading will not be blocked by loading fonts from font-face. However, you may discover that fonts are not loaded after moving them to separate subdomain. What is wrong?

You must add header Access-Control-Allow-Origin "*" (or specify here your subdomain) when serve fonts[……]

Read more

Detect browser cookie third party support using feature detection

So, you want to detect browser cookie third party support.

What is third-party cookies

Basically, third-party cookies are cookies that are set by a website other than the one you are currently on. For example, ctomczyk.pl might have a Twitter like button. That button will set a cookie that can be read by Twitter. That would be considered a third-party cookie.

Some browsers (from specific versions), like Firefox and Safari, have this option disabled by default. However, see page “How to enable third-party cookies in your web browser” t[……]

Read more

Loading optimization tips

Your web page / application loading very slowly? There is several reasons why your data is loading slowly. However, some tricks can be done to make load site faster.

Max connections per hostname

Try to measure amount of connections using Firebug in Firefox console, also in Google Chrome, Opera or Internet Explorer. There is also nice tool named “HTTP Analyzer” (30 days of trial) which can help you track the network connections. Even, if they are not coming from browsers only.

Every browser can open some several connections per hostname[……]

Read more

Wamp, error PHP Startup: Unable to load dynamic library ‘c:/wamp/bin/php/php5.3.13/ext/php_intl.dll’

Tried to run internationalization in WAMP using php_intl module, but got error Unable to load dynamic library ‘c:/wamp/bin/php/php5.3.13/ext/php_intl.dll’. This makes me headache. It happens because Apache can’t find the icu*.dll files. There is at least 3 solutions:

  • One solution is to add “C:\wamp\bin\php\php5.3.9” (or similar directory) to your system PATH.
  • The other solution is to copy the icu*.dll files to your apache’s bin directory.
  • A third option is to copy the icu*.dll files to your Windows system directory (system32 or SysWOW64)[……]

    Read more

JavaScript, split and non-breaking space

I created and added pre element with contentEditable attribute. I inserted some text with non-breaking space and tried to get text and split using simple txt.split(/\s/), where txt represent string from pre element. Unfortunately, this split doesn’t work well in IE7 and return wrong splitted data in array when string contains non-breaking spaces.

I solved this problem by using little trick:

var temp = doc.createElement('div'),
    str;

temp.innerHTML = txt;
str = temp.innerText || temp.textContent || temp.text;
temp = null;

a[……]

Read more

List of ActiveX Objects

Have you ever tried to find out how to list all of ActiveX objects? Well, mee too. Now I found the solution by using small software named ActiveXHelper.

ActiveXHelper is a small utility that allows you to view essential information about ActiveX components installed on your computer. You can view the entire (and very large !) list of ActiveX components by loading it from HKEY_CLASSES_ROOT\CLSID Registry key, or alternatively, display only the ActiveX components that you specify. In addition, you can temporarily disable specific ActiveX compo[……]

Read more

Get value from URL param

Well, this time will be shortly as always. I wanted to get value from some param in URL. After some research this could be done by this code (I use it):

/**
 * Function getValueFromURLparam
 * Extracting Querystring key/value pairs
 */

var getValueFromURLparam = function(name, url)
{
	name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
	var regexS = "[\\?&]"+name+"=([^&#]*)";
	var regex = new RegExp( regexS );
	var results = regex.exec(url);
	return (results === null) ? "" : results[1];
};

[……]

Read more

Pagination